summaryrefslogtreecommitdiffstats
path: root/drivers/net/usb/hso.c
diff options
context:
space:
mode:
authorAleksander Morgado2015-02-13 14:51:02 +0100
committerDavid S. Miller2015-02-13 16:17:05 +0100
commit0416605548766782acee60701b5c712e9b9e1bc2 (patch)
tree81f8ebe19c80ac3fbe29b1044885847002047693 /drivers/net/usb/hso.c
parenttcp: make sure skb is not shared before using skb_get() (diff)
downloadkernel-qcow2-linux-0416605548766782acee60701b5c712e9b9e1bc2.tar.gz
kernel-qcow2-linux-0416605548766782acee60701b5c712e9b9e1bc2.tar.xz
kernel-qcow2-linux-0416605548766782acee60701b5c712e9b9e1bc2.zip
hso: fix rx parsing logic when skb allocation fails
If skb allocation fails once the IP header has been received, the rx state is being set to WAIT_SYNC. The logic, though, shouldn't directly return, as the buffer may contain a full packet, and therefore the WAIT_SYNC state needs to be processed (resetting state to WAIT_IP, clearing rx_buf_size and re-initializing rx_buf_missing). So, just let the while loop continue so that in the next iteration the WAIT_SYNC state cleanly stops the loop. The WAIT_SYNC processing will be done just after that, only if the end of packet is flagged. Signed-off-by: Aleksander Morgado <aleksander@aleksander.es> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb/hso.c')
-rw-r--r--drivers/net/usb/hso.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index 6b8efcabb816..9cdfb3fe9c15 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -914,7 +914,7 @@ static void packetizeRx(struct hso_net *odev, unsigned char *ip_pkt,
/* We got no receive buffer. */
D1("could not allocate memory");
odev->rx_parse_state = WAIT_SYNC;
- return;
+ continue;
}
/* Copy what we got so far. make room for iphdr