Dean Jenkins 960eb4eeaa asix: Ensure asix_rx_fixup_info members are all reset
There is a risk that the members of the structure asix_rx_fixup_info
become unsynchronised leading to the possibility of a malfunction.

For example, rx->split_head was not being set to false after an
error was detected so potentially could cause a malformed 32-bit
Data header word to be formed.

Therefore add function reset_asix_rx_fixup_info() to reset all the
members of asix_rx_fixup_info so that future processing will start
with known initial conditions.

Also, if (skb->len != offset) becomes true then call
reset_asix_rx_fixup_info() so that the processing of the next URB
starts with known initial conditions. Without the call, the check
does nothing which potentially could lead to a malfunction
when the next URB is processed.

In addition, for robustness, call reset_asix_rx_fixup_info() before
every error path's "return 0". This ensures that the next URB is
processed from known initial conditions.

Signed-off-by: Dean Jenkins <Dean_Jenkins@mentor.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-08-07 10:10:19 -07:00
..
2016-08-31 21:07:05 -07:00
2017-04-03 19:09:40 -07:00
2017-04-03 19:09:40 -07:00
2017-04-25 10:08:16 -04:00
2017-04-03 19:09:40 -07:00
2017-06-16 11:48:40 -04:00
2017-04-25 10:08:16 -04:00
2017-06-21 11:32:57 -04:00
2017-04-03 19:09:40 -07:00
2017-04-03 19:09:40 -07:00
2017-06-16 11:48:40 -04:00