Skip to content

Commit

Permalink
hso: Fix URB submission -EINVAL.
Browse files Browse the repository at this point in the history
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 <D.Barow@option.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Denis Joseph Barrow authored and David S. Miller committed Nov 25, 2008
1 parent 4a3e818 commit 89930b7
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions drivers/net/usb/hso.c
Original file line number Diff line number Diff line change
Expand Up @@ -2762,18 +2762,21 @@ static int hso_resume(struct usb_interface *iface)
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;
}
}

Expand Down

0 comments on commit 89930b7

Please sign in to comment.