summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Williams2014-05-22 14:32:41 +0200
committerJohn W. Linville2014-05-22 20:04:36 +0200
commitd2ed2703cabd1e41fd98eefaeeb77a110fbcc493 (patch)
tree67b932d14b92bb485de72942fbb7d2c6fe78d421
parentrt2x00: Endless loop on hub port power down (diff)
downloadkernel-qcow2-linux-d2ed2703cabd1e41fd98eefaeeb77a110fbcc493.tar.gz
kernel-qcow2-linux-d2ed2703cabd1e41fd98eefaeeb77a110fbcc493.tar.xz
kernel-qcow2-linux-d2ed2703cabd1e41fd98eefaeeb77a110fbcc493.zip
libertas: fix return value when processing invalid packet
Nothing actually uses the return value yet, but we might as well make it correct, like process_rxed_802_11_packet() does for the same case. Also ensure that if monitor mode is enabled (and thus process_rxed_802_11_packet() is called) that the debugging enter/leave functions are balanced. Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/libertas/rx.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/wireless/libertas/rx.c b/drivers/net/wireless/libertas/rx.c
index c7366b07b568..e446fed7b345 100644
--- a/drivers/net/wireless/libertas/rx.c
+++ b/drivers/net/wireless/libertas/rx.c
@@ -71,8 +71,10 @@ int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *skb)
skb->ip_summed = CHECKSUM_NONE;
- if (priv->wdev->iftype == NL80211_IFTYPE_MONITOR)
- return process_rxed_802_11_packet(priv, skb);
+ if (priv->wdev->iftype == NL80211_IFTYPE_MONITOR) {
+ ret = process_rxed_802_11_packet(priv, skb);
+ goto done;
+ }
p_rx_pd = (struct rxpd *) skb->data;
p_rx_pkt = (struct rxpackethdr *) ((u8 *)p_rx_pd +
@@ -86,7 +88,7 @@ int lbs_process_rxed_packet(struct lbs_private *priv, struct sk_buff *skb)
if (skb->len < (ETH_HLEN + 8 + sizeof(struct rxpd))) {
lbs_deb_rx("rx err: frame received with bad length\n");
dev->stats.rx_length_errors++;
- ret = 0;
+ ret = -EINVAL;
dev_kfree_skb(skb);
goto done;
}