|
@@ -94,8 +94,12 @@ int mwifiex_process_rx_packet(struct mwifiex_private *priv,
|
|
|
rx_pkt_hdr = (void *)local_rx_pd +
|
|
|
le16_to_cpu(local_rx_pd->rx_pkt_offset);
|
|
|
|
|
|
- if (!memcmp(&rx_pkt_hdr->rfc1042_hdr, rfc1042_header,
|
|
|
- sizeof(rfc1042_header))) {
|
|
|
+ if ((!memcmp(&rx_pkt_hdr->rfc1042_hdr, bridge_tunnel_header,
|
|
|
+ sizeof(bridge_tunnel_header))) ||
|
|
|
+ (!memcmp(&rx_pkt_hdr->rfc1042_hdr, rfc1042_header,
|
|
|
+ sizeof(rfc1042_header)) &&
|
|
|
+ ntohs(rx_pkt_hdr->rfc1042_hdr.snap_type) != ETH_P_AARP &&
|
|
|
+ ntohs(rx_pkt_hdr->rfc1042_hdr.snap_type) != ETH_P_IPX)) {
|
|
|
/*
|
|
|
* Replace the 803 header and rfc1042 header (llc/snap) with an
|
|
|
* EthernetII header, keep the src/dst and snap_type
|