Merge tag 'linux-can-fixes-for-4.15-20171208' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can

Marc Kleine-Budde says:

====================
pull-request: can 2017-12-08

this is a pull request of 6 patches for net/master.

Martin Kelly provides 5 patches for various USB based CAN drivers, that
properly cancel the URBs on adapter unplug, so that the driver doesn't
end up in an endless loop. Stephane Grosjean provides a patch to restart
the tx queue if zero length packages are transmitted.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>

+12 -6
+3 -6
drivers/net/can/peak_canfd/peak_canfd.c
··· 258 /* if this frame is an echo, */ 259 if ((rx_msg_flags & PUCAN_MSG_LOOPED_BACK) && 260 !(rx_msg_flags & PUCAN_MSG_SELF_RECEIVE)) { 261 - int n; 262 unsigned long flags; 263 264 spin_lock_irqsave(&priv->echo_lock, flags); 265 - n = can_get_echo_skb(priv->ndev, msg->client); 266 spin_unlock_irqrestore(&priv->echo_lock, flags); 267 268 /* count bytes of the echo instead of skb */ 269 stats->tx_bytes += cf_len; 270 stats->tx_packets++; 271 272 - if (n) { 273 - /* restart tx queue only if a slot is free */ 274 - netif_wake_queue(priv->ndev); 275 - } 276 277 return 0; 278 }
··· 258 /* if this frame is an echo, */ 259 if ((rx_msg_flags & PUCAN_MSG_LOOPED_BACK) && 260 !(rx_msg_flags & PUCAN_MSG_SELF_RECEIVE)) { 261 unsigned long flags; 262 263 spin_lock_irqsave(&priv->echo_lock, flags); 264 + can_get_echo_skb(priv->ndev, msg->client); 265 spin_unlock_irqrestore(&priv->echo_lock, flags); 266 267 /* count bytes of the echo instead of skb */ 268 stats->tx_bytes += cf_len; 269 stats->tx_packets++; 270 271 + /* restart tx queue (a slot is free) */ 272 + netif_wake_queue(priv->ndev); 273 274 return 0; 275 }
+2
drivers/net/can/usb/ems_usb.c
··· 288 289 case -ECONNRESET: /* unlink */ 290 case -ENOENT: 291 case -ESHUTDOWN: 292 return; 293
··· 288 289 case -ECONNRESET: /* unlink */ 290 case -ENOENT: 291 + case -EPIPE: 292 + case -EPROTO: 293 case -ESHUTDOWN: 294 return; 295
+2
drivers/net/can/usb/esd_usb2.c
··· 393 break; 394 395 case -ENOENT: 396 case -ESHUTDOWN: 397 return; 398
··· 393 break; 394 395 case -ENOENT: 396 + case -EPIPE: 397 + case -EPROTO: 398 case -ESHUTDOWN: 399 return; 400
+2
drivers/net/can/usb/kvaser_usb.c
··· 1326 case 0: 1327 break; 1328 case -ENOENT: 1329 case -ESHUTDOWN: 1330 return; 1331 default:
··· 1326 case 0: 1327 break; 1328 case -ENOENT: 1329 + case -EPIPE: 1330 + case -EPROTO: 1331 case -ESHUTDOWN: 1332 return; 1333 default:
+1
drivers/net/can/usb/mcba_usb.c
··· 593 594 case -ENOENT: 595 case -EPIPE: 596 case -ESHUTDOWN: 597 return; 598
··· 593 594 case -ENOENT: 595 case -EPIPE: 596 + case -EPROTO: 597 case -ESHUTDOWN: 598 return; 599
+2
drivers/net/can/usb/usb_8dev.c
··· 524 break; 525 526 case -ENOENT: 527 case -ESHUTDOWN: 528 return; 529
··· 524 break; 525 526 case -ENOENT: 527 + case -EPIPE: 528 + case -EPROTO: 529 case -ESHUTDOWN: 530 return; 531