respin of patches for linux-2.6.28-rc6 hso_einval.patch [patch 3/6]
Subsystems (4)
Added check for IFF_UP in hso_resume, this should eliminate -EINVAL (-22) errors caused from urb's being submitted twice, once by hso_resume & once in hso_net_open, if suspend/resume USB power saving mode is enabled
Signed-off-by Denis Joseph Barrow <[email protected]>
---
drivers/net/usb/hso.c +14 -11
@@ -2762,18 +2762,21 @@if (network_table[i] && (network_table[i]->interface == iface)) { hso_net =dev2net (network_table[i]); -/* First transmit any lingering data, then restart the -* device. */ -if (hso_net->skb_tx_buf) { -dev_dbg (&iface->dev, -"Transmitting lingering data\n" ); -hso_net_start_xmit (hso_net->skb_tx_buf, - hso_net->net); - hso_net->skb_tx_buf =NULL ; +if (hso_net->flags &IFF_UP ) { +/* First transmit any lingering data, +then restart the device. */ +if (hso_net->skb_tx_buf) { +dev_dbg (&iface->dev, +"Transmitting" +" lingering data\n" ); +hso_net_start_xmit (hso_net->skb_tx_buf, + hso_net->net); + hso_net->skb_tx_buf =NULL ; + } + result =hso_start_net_device (network_table[i]); +if (result) + goto out; } - result =hso_start_net_device (network_table[i]); -if (result) - goto out; } }
Signature · 2 lines
best regards, D.J. Barrow
Added check for IFF_UP in hso_resume, this should eliminate -EINVAL (-22) errors caused from urb's being submitted twice, once by hso_resume & once in hso_net_open, if suspend/resume USB power saving mode is enabled
Signed-off-by Denis Joseph Barrow <[email protected]>
---
drivers/net/usb/hso.c +14 -11
@@ -2762,18 +2762,21 @@if (network_table[i] && (network_table[i]->interface == iface)) { hso_net =dev2net (network_table[i]); -/* First transmit any lingering data, then restart the -* device. */ -if (hso_net->skb_tx_buf) { -dev_dbg (&iface->dev, -"Transmitting lingering data\n" ); -hso_net_start_xmit (hso_net->skb_tx_buf, - hso_net->net); - hso_net->skb_tx_buf =NULL ; +if (hso_net->flags &IFF_UP ) { +/* First transmit any lingering data, +then restart the device. */ +if (hso_net->skb_tx_buf) { +dev_dbg (&iface->dev, +"Transmitting" +" lingering data\n" ); +hso_net_start_xmit (hso_net->skb_tx_buf, + hso_net->net); + hso_net->skb_tx_buf =NULL ; + } + result =hso_start_net_device (network_table[i]); +if (result) + goto out; } - result =hso_start_net_device (network_table[i]); -if (result) - goto out; } }