Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

Pull in the 'net' tree to get CAIF bug fixes upon which
the following set of CAIF feature patches depend.

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

+39 -32
+5 -4
drivers/net/caif/caif_hsi.c
··· 744 744 size_t fifo_occupancy = 0; 745 745 746 746 /* Wakeup timeout */ 747 - dev_err(&cfhsi->ndev->dev, "%s: Timeout.\n", 747 + dev_dbg(&cfhsi->ndev->dev, "%s: Timeout.\n", 748 748 __func__); 749 749 750 750 /* Check FIFO to check if modem has sent something. */ 751 751 WARN_ON(cfhsi->dev->cfhsi_fifo_occupancy(cfhsi->dev, 752 752 &fifo_occupancy)); 753 753 754 - dev_err(&cfhsi->ndev->dev, "%s: Bytes in FIFO: %u.\n", 754 + dev_dbg(&cfhsi->ndev->dev, "%s: Bytes in FIFO: %u.\n", 755 755 __func__, (unsigned) fifo_occupancy); 756 756 757 757 /* Check if we misssed the interrupt. */ ··· 1210 1210 1211 1211 static void cfhsi_shutdown(struct cfhsi *cfhsi) 1212 1212 { 1213 - u8 *tx_buf, *rx_buf; 1213 + u8 *tx_buf, *rx_buf, *flip_buf; 1214 1214 1215 1215 /* Stop TXing */ 1216 1216 netif_tx_stop_all_queues(cfhsi->ndev); ··· 1234 1234 /* Store bufferes: will be freed later. */ 1235 1235 tx_buf = cfhsi->tx_buf; 1236 1236 rx_buf = cfhsi->rx_buf; 1237 - 1237 + flip_buf = cfhsi->rx_flip_buf; 1238 1238 /* Flush transmit queues. */ 1239 1239 cfhsi_abort_tx(cfhsi); 1240 1240 ··· 1247 1247 /* Free buffers. */ 1248 1248 kfree(tx_buf); 1249 1249 kfree(rx_buf); 1250 + kfree(flip_buf); 1250 1251 } 1251 1252 1252 1253 int cfhsi_remove(struct platform_device *pdev)
+2 -3
drivers/net/virtio_net.c
··· 626 626 /* This can happen with OOM and indirect buffers. */ 627 627 if (unlikely(capacity < 0)) { 628 628 if (likely(capacity == -ENOMEM)) { 629 - if (net_ratelimit()) { 629 + if (net_ratelimit()) 630 630 dev_warn(&dev->dev, 631 631 "TX queue failure: out of memory\n"); 632 - } else { 632 + } else { 633 633 dev->stats.tx_fifo_errors++; 634 634 if (net_ratelimit()) 635 635 dev_warn(&dev->dev, 636 636 "Unexpected TX queue failure: %d\n", 637 637 capacity); 638 - } 639 638 } 640 639 dev->stats.tx_dropped++; 641 640 kfree_skb(skb);
+6 -3
net/caif/chnl_net.c
··· 103 103 skb->protocol = htons(ETH_P_IPV6); 104 104 break; 105 105 default: 106 + kfree_skb(skb); 106 107 priv->netdev->stats.rx_errors++; 107 108 return -EINVAL; 108 109 } ··· 221 220 222 221 if (skb->len > priv->netdev->mtu) { 223 222 pr_warn("Size of skb exceeded MTU\n"); 223 + kfree_skb(skb); 224 224 dev->stats.tx_errors++; 225 - return -ENOSPC; 225 + return NETDEV_TX_OK; 226 226 } 227 227 228 228 if (!priv->flowenabled) { 229 229 pr_debug("dropping packets flow off\n"); 230 + kfree_skb(skb); 230 231 dev->stats.tx_dropped++; 231 - return NETDEV_TX_BUSY; 232 + return NETDEV_TX_OK; 232 233 } 233 234 234 235 if (priv->conn_req.protocol == CAIFPROTO_DATAGRAM_LOOP) ··· 245 242 result = priv->chnl.dn->transmit(priv->chnl.dn, pkt); 246 243 if (result) { 247 244 dev->stats.tx_dropped++; 248 - return result; 245 + return NETDEV_TX_OK; 249 246 } 250 247 251 248 /* Update statistics. */
+20
net/core/dev.c
··· 1409 1409 * register_netdevice_notifier(). The notifier is unlinked into the 1410 1410 * kernel structures and may then be reused. A negative errno code 1411 1411 * is returned on a failure. 1412 + * 1413 + * After unregistering unregister and down device events are synthesized 1414 + * for all devices on the device list to the removed notifier to remove 1415 + * the need for special case cleanup code. 1412 1416 */ 1413 1417 1414 1418 int unregister_netdevice_notifier(struct notifier_block *nb) 1415 1419 { 1420 + struct net_device *dev; 1421 + struct net *net; 1416 1422 int err; 1417 1423 1418 1424 rtnl_lock(); 1419 1425 err = raw_notifier_chain_unregister(&netdev_chain, nb); 1426 + if (err) 1427 + goto unlock; 1428 + 1429 + for_each_net(net) { 1430 + for_each_netdev(net, dev) { 1431 + if (dev->flags & IFF_UP) { 1432 + nb->notifier_call(nb, NETDEV_GOING_DOWN, dev); 1433 + nb->notifier_call(nb, NETDEV_DOWN, dev); 1434 + } 1435 + nb->notifier_call(nb, NETDEV_UNREGISTER, dev); 1436 + nb->notifier_call(nb, NETDEV_UNREGISTER_BATCH, dev); 1437 + } 1438 + } 1439 + unlock: 1420 1440 rtnl_unlock(); 1421 1441 return err; 1422 1442 }
+1 -1
net/key/af_key.c
··· 3480 3480 3481 3481 /* Addresses to be used by KM for negotiation, if ext is available */ 3482 3482 if (k != NULL && (set_sadb_kmaddress(skb, k) < 0)) 3483 - return -EINVAL; 3483 + goto err; 3484 3484 3485 3485 /* selector src */ 3486 3486 set_sadb_address(skb, sasize_sel, SADB_EXT_ADDRESS_SRC, sel);
+3 -2
net/l2tp/l2tp_ip.c
··· 232 232 { 233 233 write_lock_bh(&l2tp_ip_lock); 234 234 hlist_del_init(&sk->sk_bind_node); 235 - hlist_del_init(&sk->sk_node); 235 + sk_del_node_init(sk); 236 236 write_unlock_bh(&l2tp_ip_lock); 237 237 sk_common_release(sk); 238 238 } ··· 271 271 chk_addr_ret != RTN_MULTICAST && chk_addr_ret != RTN_BROADCAST) 272 272 goto out; 273 273 274 - inet->inet_rcv_saddr = inet->inet_saddr = addr->l2tp_addr.s_addr; 274 + if (addr->l2tp_addr.s_addr) 275 + inet->inet_rcv_saddr = inet->inet_saddr = addr->l2tp_addr.s_addr; 275 276 if (chk_addr_ret == RTN_MULTICAST || chk_addr_ret == RTN_BROADCAST) 276 277 inet->inet_saddr = 0; /* Use device */ 277 278 sk_dst_reset(sk);
+2 -19
net/phonet/pn_dev.c
··· 331 331 332 332 static void __net_exit phonet_exit_net(struct net *net) 333 333 { 334 - struct phonet_net *pnn = phonet_pernet(net); 335 - struct net_device *dev; 336 - unsigned i; 337 - 338 - rtnl_lock(); 339 - for_each_netdev(net, dev) 340 - phonet_device_destroy(dev); 341 - 342 - for (i = 0; i < 64; i++) { 343 - dev = pnn->routes.table[i]; 344 - if (dev) { 345 - rtm_phonet_notify(RTM_DELROUTE, dev, i); 346 - dev_put(dev); 347 - } 348 - } 349 - rtnl_unlock(); 350 - 351 334 proc_net_remove(net, "phonet"); 352 335 } 353 336 ··· 344 361 /* Initialize Phonet devices list */ 345 362 int __init phonet_device_init(void) 346 363 { 347 - int err = register_pernet_device(&phonet_net_ops); 364 + int err = register_pernet_subsys(&phonet_net_ops); 348 365 if (err) 349 366 return err; 350 367 ··· 360 377 { 361 378 rtnl_unregister_all(PF_PHONET); 362 379 unregister_netdevice_notifier(&phonet_device_notifier); 363 - unregister_pernet_device(&phonet_net_ops); 380 + unregister_pernet_subsys(&phonet_net_ops); 364 381 proc_net_remove(&init_net, "pnresource"); 365 382 } 366 383