Skip to content

Commit 13199a0

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking changes from David S. Miller: 1) Fix IPSEC header length calculation for transport mode in ESP. The issue is whether to do the calculation before or after alignment. Fix from Benjamin Poirier. 2) Fix regression in IPV6 IPSEC fragment length calculations, from Gao Feng. This is another transport vs tunnel mode issue. 3) Handle AF_UNSPEC connect()s properly in L2TP to avoid OOPSes. Fix from James Chapman. 4) Fix USB ASIX driver's reception of full sized VLAN packets, from Eric Dumazet. 5) Allow drop monitor (and, more generically, all generic netlink protocols) to be automatically loaded as a module. From Neil Horman. Fix up trivial conflict in Documentation/feature-removal-schedule.txt due to new entries added next to each other at the end. As usual. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (38 commits) net/smsc911x: Repair broken failure paths virtio-net: remove useless disable on freeze netdevice: Update netif_dbg for CONFIG_DYNAMIC_DEBUG drop_monitor: Add module alias to enable automatic module loading genetlink: Build a generic netlink family module alias net: add MODULE_ALIAS_NET_PF_PROTO_NAME r6040: Do a Proper deinit at errorpath and also when driver unloads (calling r6040_remove_one) r6040: disable pci device if the subsequent calls (after pci_enable_device) fails skb: avoid unnecessary reallocations in __skb_cow net: sh_eth: fix the rxdesc pointer when rx descriptor empty happens asix: allow full size 8021Q frames to be received rds_rdma: don't assume infiniband device is PCI l2tp: fix oops in L2TP IP sockets for connect() AF_UNSPEC case mac80211: fix ADDBA declined after suspend with wowlan wlcore: fix undefined symbols when CONFIG_PM is not defined mac80211: fix flag check for QoS NOACK frames ath9k_hw: apply internal regulator settings on AR933x ath9k_hw: update AR933x initvals to fix issues with high power devices ath9k: fix a use-after-free-bug when ath_tx_setup_buffer() fails ath9k: stop rx dma before stopping tx ...
2 parents af56e0a + 2e1d4a0 commit 13199a0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+343
-645
lines changed

Documentation/feature-removal-schedule.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,3 +606,9 @@ Why: There are two mci drivers: at91-mci and atmel-mci. The PDC support
606606
Who: Ludovic Desroches <ludovic.desroches@atmel.com>
607607

608608
----------------------------
609+
610+
What: net/wanrouter/
611+
When: June 2013
612+
Why: Unsupported/unmaintained/unused since 2.6
613+
614+
----------------------------

MAINTAINERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6657,7 +6657,7 @@ F: include/linux/taskstats*
66576657
F: kernel/taskstats.c
66586658

66596659
TC CLASSIFIER
6660-
M: Jamal Hadi Salim <hadi@cyberus.ca>
6660+
M: Jamal Hadi Salim <jhs@mojatatu.com>
66616661
L: netdev@vger.kernel.org
66626662
S: Maintained
66636663
F: include/linux/pkt_cls.h

drivers/atm/solos-pci.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -984,6 +984,7 @@ static uint32_t fpga_tx(struct solos_card *card)
984984
} else if (skb && card->using_dma) {
985985
SKB_CB(skb)->dma_addr = pci_map_single(card->dev, skb->data,
986986
skb->len, PCI_DMA_TODEVICE);
987+
card->tx_skb[port] = skb;
987988
iowrite32(SKB_CB(skb)->dma_addr,
988989
card->config_regs + TX_DMA_ADDR(port));
989990
}
@@ -1152,7 +1153,8 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id)
11521153
db_fpga_upgrade = db_firmware_upgrade = 0;
11531154
}
11541155

1155-
if (card->fpga_version >= DMA_SUPPORTED){
1156+
if (card->fpga_version >= DMA_SUPPORTED) {
1157+
pci_set_master(dev);
11561158
card->using_dma = 1;
11571159
} else {
11581160
card->using_dma = 0;

drivers/net/ethernet/rdc/r6040.c

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1096,28 +1096,28 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
10961096
if (err) {
10971097
dev_err(&pdev->dev, "32-bit PCI DMA addresses"
10981098
"not supported by the card\n");
1099-
goto err_out;
1099+
goto err_out_disable_dev;
11001100
}
11011101
err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32));
11021102
if (err) {
11031103
dev_err(&pdev->dev, "32-bit PCI DMA addresses"
11041104
"not supported by the card\n");
1105-
goto err_out;
1105+
goto err_out_disable_dev;
11061106
}
11071107

11081108
/* IO Size check */
11091109
if (pci_resource_len(pdev, bar) < io_size) {
11101110
dev_err(&pdev->dev, "Insufficient PCI resources, aborting\n");
11111111
err = -EIO;
1112-
goto err_out;
1112+
goto err_out_disable_dev;
11131113
}
11141114

11151115
pci_set_master(pdev);
11161116

11171117
dev = alloc_etherdev(sizeof(struct r6040_private));
11181118
if (!dev) {
11191119
err = -ENOMEM;
1120-
goto err_out;
1120+
goto err_out_disable_dev;
11211121
}
11221122
SET_NETDEV_DEV(dev, &pdev->dev);
11231123
lp = netdev_priv(dev);
@@ -1233,11 +1233,15 @@ static int __devinit r6040_init_one(struct pci_dev *pdev,
12331233
err_out_mdio:
12341234
mdiobus_free(lp->mii_bus);
12351235
err_out_unmap:
1236+
netif_napi_del(&lp->napi);
1237+
pci_set_drvdata(pdev, NULL);
12361238
pci_iounmap(pdev, ioaddr);
12371239
err_out_free_res:
12381240
pci_release_regions(pdev);
12391241
err_out_free_dev:
12401242
free_netdev(dev);
1243+
err_out_disable_dev:
1244+
pci_disable_device(pdev);
12411245
err_out:
12421246
return err;
12431247
}
@@ -1251,6 +1255,9 @@ static void __devexit r6040_remove_one(struct pci_dev *pdev)
12511255
mdiobus_unregister(lp->mii_bus);
12521256
kfree(lp->mii_bus->irq);
12531257
mdiobus_free(lp->mii_bus);
1258+
netif_napi_del(&lp->napi);
1259+
pci_set_drvdata(pdev, NULL);
1260+
pci_iounmap(pdev, lp->base);
12541261
pci_release_regions(pdev);
12551262
free_netdev(dev);
12561263
pci_disable_device(pdev);

drivers/net/ethernet/renesas/sh_eth.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1101,8 +1101,12 @@ static int sh_eth_rx(struct net_device *ndev)
11011101

11021102
/* Restart Rx engine if stopped. */
11031103
/* If we don't need to check status, don't. -KDU */
1104-
if (!(sh_eth_read(ndev, EDRRR) & EDRRR_R))
1104+
if (!(sh_eth_read(ndev, EDRRR) & EDRRR_R)) {
1105+
/* fix the values for the next receiving */
1106+
mdp->cur_rx = mdp->dirty_rx = (sh_eth_read(ndev, RDFAR) -
1107+
sh_eth_read(ndev, RDLAR)) >> 4;
11051108
sh_eth_write(ndev, EDRRR_R, EDRRR);
1109+
}
11061110

11071111
return 0;
11081112
}
@@ -1199,8 +1203,6 @@ static void sh_eth_error(struct net_device *ndev, int intr_status)
11991203
/* Receive Descriptor Empty int */
12001204
ndev->stats.rx_over_errors++;
12011205

1202-
if (sh_eth_read(ndev, EDRRR) ^ EDRRR_R)
1203-
sh_eth_write(ndev, EDRRR_R, EDRRR);
12041206
if (netif_msg_rx_err(mdp))
12051207
dev_err(&ndev->dev, "Receive Descriptor Empty\n");
12061208
}

drivers/net/ethernet/smsc/smsc911x.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2390,11 +2390,11 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
23902390

23912391
retval = smsc911x_request_resources(pdev);
23922392
if (retval)
2393-
goto out_return_resources;
2393+
goto out_request_resources_fail;
23942394

23952395
retval = smsc911x_enable_resources(pdev);
23962396
if (retval)
2397-
goto out_disable_resources;
2397+
goto out_enable_resources_fail;
23982398

23992399
if (pdata->ioaddr == NULL) {
24002400
SMSC_WARN(pdata, probe, "Error smsc911x base address invalid");
@@ -2501,8 +2501,9 @@ static int __devinit smsc911x_drv_probe(struct platform_device *pdev)
25012501
free_irq(dev->irq, dev);
25022502
out_disable_resources:
25032503
(void)smsc911x_disable_resources(pdev);
2504-
out_return_resources:
2504+
out_enable_resources_fail:
25052505
smsc911x_free_resources(pdev);
2506+
out_request_resources_fail:
25062507
platform_set_drvdata(pdev, NULL);
25072508
iounmap(pdata->ioaddr);
25082509
free_netdev(dev);

drivers/net/usb/asix.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include <linux/crc32.h>
3636
#include <linux/usb/usbnet.h>
3737
#include <linux/slab.h>
38+
#include <linux/if_vlan.h>
3839

3940
#define DRIVER_VERSION "22-Dec-2011"
4041
#define DRIVER_NAME "asix"
@@ -321,7 +322,7 @@ static int asix_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
321322
return 0;
322323
}
323324

324-
if ((size > dev->net->mtu + ETH_HLEN) ||
325+
if ((size > dev->net->mtu + ETH_HLEN + VLAN_HLEN) ||
325326
(size + offset > skb->len)) {
326327
netdev_err(dev->net, "asix_rx_fixup() Bad RX Length %d\n",
327328
size);

drivers/net/usb/qmi_wwan.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,8 @@ static const struct usb_device_id products[] = {
547547
{QMI_GOBI_DEVICE(0x16d8, 0x8002)}, /* CMDTech Gobi 2000 Modem device (VU922) */
548548
{QMI_GOBI_DEVICE(0x05c6, 0x9205)}, /* Gobi 2000 Modem device */
549549
{QMI_GOBI_DEVICE(0x1199, 0x9013)}, /* Sierra Wireless Gobi 3000 Modem device (MC8355) */
550+
{QMI_GOBI_DEVICE(0x1199, 0x9015)}, /* Sierra Wireless Gobi 3000 Modem device */
551+
{QMI_GOBI_DEVICE(0x1199, 0x9019)}, /* Sierra Wireless Gobi 3000 Modem device */
550552
{ } /* END */
551553
};
552554
MODULE_DEVICE_TABLE(usb, products);

drivers/net/virtio_net.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1231,11 +1231,6 @@ static int virtnet_freeze(struct virtio_device *vdev)
12311231
vi->config_enable = false;
12321232
mutex_unlock(&vi->config_lock);
12331233

1234-
virtqueue_disable_cb(vi->rvq);
1235-
virtqueue_disable_cb(vi->svq);
1236-
if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_CTRL_VQ))
1237-
virtqueue_disable_cb(vi->cvq);
1238-
12391234
netif_device_detach(vi->dev);
12401235
cancel_delayed_work_sync(&vi->refill);
12411236

drivers/net/wireless/ath/ath5k/base.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2415,6 +2415,22 @@ ath5k_tx_complete_poll_work(struct work_struct *work)
24152415
* Initialization routines *
24162416
\*************************/
24172417

2418+
static const struct ieee80211_iface_limit if_limits[] = {
2419+
{ .max = 2048, .types = BIT(NL80211_IFTYPE_STATION) },
2420+
{ .max = 4, .types =
2421+
#ifdef CONFIG_MAC80211_MESH
2422+
BIT(NL80211_IFTYPE_MESH_POINT) |
2423+
#endif
2424+
BIT(NL80211_IFTYPE_AP) },
2425+
};
2426+
2427+
static const struct ieee80211_iface_combination if_comb = {
2428+
.limits = if_limits,
2429+
.n_limits = ARRAY_SIZE(if_limits),
2430+
.max_interfaces = 2048,
2431+
.num_different_channels = 1,
2432+
};
2433+
24182434
int __devinit
24192435
ath5k_init_ah(struct ath5k_hw *ah, const struct ath_bus_ops *bus_ops)
24202436
{
@@ -2436,6 +2452,9 @@ ath5k_init_ah(struct ath5k_hw *ah, const struct ath_bus_ops *bus_ops)
24362452
BIT(NL80211_IFTYPE_ADHOC) |
24372453
BIT(NL80211_IFTYPE_MESH_POINT);
24382454

2455+
hw->wiphy->iface_combinations = &if_comb;
2456+
hw->wiphy->n_iface_combinations = 1;
2457+
24392458
/* SW support for IBSS_RSN is provided by mac80211 */
24402459
hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
24412460

0 commit comments

Comments
 (0)