Skip to content

Commit

Permalink
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Browse files Browse the repository at this point in the history
Pull networking fixes from David Miller:
 "Just a small pile of fixes"

 1) Fix race conditions in IP fragmentation LRU list handling, from
    Konstantin Khlebnikov.

 2) vfree() is no longer verboten in interrupts, so deferring is
    pointless, from Al Viro.

 3) Conversion from mutex to semaphore in netpoll left trylock test
    inverted, caught by Dan Carpenter.

 4) 3c59x uses wrong base address when releasing regions, from Sergei
    Shtylyov.

 5) Bounds checking in TIPC from Dan Carpenter.

 6) Fastopen cookies should not be expired as aggressively as other TCP
    metrics.  From Eric Dumazet.

 7) Fix retrieval of MAC address in ibmveth, from Ben Herrenschmidt.

 8) Don't use "u16" in virtio user headers, from Stephen Hemminger

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
  tipc: potential divide by zero in tipc_link_recv_fragment()
  tipc: add a bounds check in link_recv_changeover_msg()
  net/usb: new driver for RTL8152
  3c59x: fix freeing nonexistent resource on driver unload
  netpoll: inverted down_trylock() test
  rps_dev_flow_table_release(): no need to delay vfree()
  fib_trie: no need to delay vfree()
  net: frag, fix race conditions in LRU list maintenance
  tcp: do not expire TCP fastopen cookies
  net/eth/ibmveth: Fixup retrieval of MAC address
  virtio: don't expose u16 in userspace api
  • Loading branch information
torvalds committed May 6, 2013
2 parents 2b69703 + 6bf1519 commit 51a26ae
Show file tree
Hide file tree
Showing 15 changed files with 1,826 additions and 50 deletions.
2 changes: 1 addition & 1 deletion drivers/net/ethernet/3com/3c59x.c
Original file line number Diff line number Diff line change
Expand Up @@ -951,7 +951,7 @@ static int vortex_eisa_remove(struct device *device)

unregister_netdev(dev);
iowrite16(TotalReset|0x14, ioaddr + EL3_CMD);
release_region(dev->base_addr, VORTEX_TOTAL_SIZE);
release_region(edev->base_addr, VORTEX_TOTAL_SIZE);

free_netdev(dev);
return 0;
Expand Down
23 changes: 10 additions & 13 deletions drivers/net/ethernet/ibm/ibmveth.c
Original file line number Diff line number Diff line change
Expand Up @@ -1322,7 +1322,7 @@ static const struct net_device_ops ibmveth_netdev_ops = {

static int ibmveth_probe(struct vio_dev *dev, const struct vio_device_id *id)
{
int rc, i;
int rc, i, mac_len;
struct net_device *netdev;
struct ibmveth_adapter *adapter;
unsigned char *mac_addr_p;
Expand All @@ -1332,11 +1332,19 @@ static int ibmveth_probe(struct vio_dev *dev, const struct vio_device_id *id)
dev->unit_address);

mac_addr_p = (unsigned char *)vio_get_attribute(dev, VETH_MAC_ADDR,
NULL);
&mac_len);
if (!mac_addr_p) {
dev_err(&dev->dev, "Can't find VETH_MAC_ADDR attribute\n");
return -EINVAL;
}
/* Workaround for old/broken pHyp */
if (mac_len == 8)
mac_addr_p += 2;
else if (mac_len != 6) {
dev_err(&dev->dev, "VETH_MAC_ADDR attribute wrong len %d\n",
mac_len);
return -EINVAL;
}

mcastFilterSize_p = (unsigned int *)vio_get_attribute(dev,
VETH_MCAST_FILTER_SIZE, NULL);
Expand All @@ -1361,17 +1369,6 @@ static int ibmveth_probe(struct vio_dev *dev, const struct vio_device_id *id)

netif_napi_add(netdev, &adapter->napi, ibmveth_poll, 16);

/*
* Some older boxes running PHYP non-natively have an OF that returns
* a 8-byte local-mac-address field (and the first 2 bytes have to be
* ignored) while newer boxes' OF return a 6-byte field. Note that
* IEEE 1275 specifies that local-mac-address must be a 6-byte field.
* The RPA doc specifies that the first byte must be 10b, so we'll
* just look for it to solve this 8 vs. 6 byte field issue
*/
if ((*mac_addr_p & 0x3) != 0x02)
mac_addr_p += 2;

adapter->mac_addr = 0;
memcpy(&adapter->mac_addr, mac_addr_p, 6);

Expand Down
11 changes: 11 additions & 0 deletions drivers/net/usb/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,17 @@ config USB_RTL8150
To compile this driver as a module, choose M here: the
module will be called rtl8150.

config USB_RTL8152
tristate "Realtek RTL8152 Based USB 2.0 Ethernet Adapters"
select NET_CORE
select MII
help
This option adds support for Realtek RTL8152 based USB 2.0
10/100 Ethernet adapters.

To compile this driver as a module, choose M here: the
module will be called r8152.

config USB_USBNET
tristate "Multi-purpose USB Networking Framework"
select NET_CORE
Expand Down
1 change: 1 addition & 0 deletions drivers/net/usb/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ obj-$(CONFIG_USB_CATC) += catc.o
obj-$(CONFIG_USB_KAWETH) += kaweth.o
obj-$(CONFIG_USB_PEGASUS) += pegasus.o
obj-$(CONFIG_USB_RTL8150) += rtl8150.o
obj-$(CONFIG_USB_RTL8152) += r8152.o
obj-$(CONFIG_USB_HSO) += hso.o
obj-$(CONFIG_USB_NET_AX8817X) += asix.o
asix-y := asix_devices.o asix_common.o ax88172a.o
Expand Down
10 changes: 10 additions & 0 deletions drivers/net/usb/cdc_ether.c
Original file line number Diff line number Diff line change
Expand Up @@ -479,6 +479,7 @@ static const struct driver_info wwan_info = {
#define NOVATEL_VENDOR_ID 0x1410
#define ZTE_VENDOR_ID 0x19D2
#define DELL_VENDOR_ID 0x413C
#define REALTEK_VENDOR_ID 0x0bda

static const struct usb_device_id products [] = {
/*
Expand Down Expand Up @@ -619,6 +620,15 @@ static const struct usb_device_id products [] = {
.driver_info = 0,
},

/* Realtek RTL8152 Based USB 2.0 Ethernet Adapters */
#if defined(CONFIG_USB_RTL8152) || defined(CONFIG_USB_RTL8152_MODULE)
{
USB_DEVICE_AND_INTERFACE_INFO(REALTEK_VENDOR_ID, 0x8152, USB_CLASS_COMM,
USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
.driver_info = 0,
},
#endif

/*
* WHITELIST!!!
*
Expand Down
Loading

0 comments on commit 51a26ae

Please sign in to comment.