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>
This commit is contained in:
parent
ba34e6d9d3
commit
0416605548
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue