projects/linux·commit 72a67a94

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

72a67a94 · Linus Torvalds <[email protected]> · 2013-08-03 15:00:23 -07:00

Pull networking fixes from David Miller:

 1) Don't ignore user initiated wireless regulatory settings on cards
    with custom regulatory domains, from Arik Nemtsov.

 2) Fix length check of bluetooth information responses, from Jaganath
    Kanakkassery.

 3) Fix misuse of PTR_ERR in btusb, from Adam Lee.

 4) Handle rfkill properly while iwlwifi devices are offline, from
    Emmanuel Grumbach.

 5) Fix r815x devices DMA'ing to stack buffers, from Hayes Wang.

 6) Kernel info leak in ATM packet scheduler, from Dan Carpenter.

 7) 8139cp doesn't check for DMA mapping errors, from Neil Horman.

 8) Fix bridge multicast code to not snoop when no querier exists,
    otherwise mutlicast traffic is lost.  From Linus Lüssing.

 9) Avoid soft lockups in fib6_run_gc(), from Michal Kubecek.

10) Fix races in automatic address asignment on ipv6, which can result
    in incorrect lifetime assignments.  From Jiri Benc.

11) Cure build bustage when CONFIG_NET_LL_RX_POLL is not set and rename
    it CONFIG_NET_RX_BUSY_POLL to eliminate the last reference to the
    original naming of this feature.  From Cong Wang.

12) Fix crash in TIPC when server socket creation fails, from Ying Xue.

13) macvlan_changelink() silently succeeds when it shouldn't, from
    Michael S Tsirkin.

14) HTB packet scheduler can crash due to sign extension, fix from
    Stephen Hemminger.

15) With the cable unplugged, r8169 prints out a message every 10
    seconds, make it netif_dbg() instead of netif_warn().  From Peter
    Wu.

16) Fix memory leak in rtm_to_ifaddr(), from Daniel Borkmann.

17) sis900 gets spurious TX queue timeouts due to mismanagement of link
    carrier state, from Denis Kirjanov.

18) Validate somaxconn sysctl to make sure it fits inside of a u16.
    From Roman Gushchin.

19) Fix MAC address filtering on qlcnic, from Shahed Shaikh.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (68 commits)
  qlcnic: Fix for flash update failure on 83xx adapter
  qlcnic: Fix link speed and duplex display for 83xx adapter
  qlcnic: Fix link speed display for 82xx adapter
  qlcnic: Fix external loopback test.
  qlcnic: Removed adapter series name from warning messages.
  qlcnic: Free up memory in error path.
  qlcnic: Fix ingress MAC learning
  qlcnic: Fix MAC address filter issue on 82xx adapter
  net: ethernet: davinci_emac: drop IRQF_DISABLED
  netlabel: use domain based selectors when address based selectors are not available
  net: check net.core.somaxconn sysctl values
  sis900: Fix the tx queue timeout issue
  net: rtm_to_ifaddr: free ifa if ifa_cacheinfo processing fails
  r8169: remove "PHY reset until link up" log spam
  net: ethernet: cpsw: drop IRQF_DISABLED
  htb: fix sign extension bug
  macvlan: handle set_promiscuity failures
  macvlan: better mode validation
  tipc: fix oops when creating server socket fails
  net: rename CONFIG_NET_LL_RX_POLL to CONFIG_NET_RX_BUSY_POLL
  ...
Commit
72a67a94bcba71a5fddd6b3596a20604d2b5dcd6
Parents
83aaf3b3 · 4bd8e738

Merge commit. Changes below are compared with the first parent: 83aaf3b3.

Changes

92 files changed · +995 −678

FileStatusAddDelContent
Documentation/sysctl/net.txtmodified+2−2View file
MAINTAINERSmodified+10−2View file
drivers/bluetooth/ath3k.cmodified+37−9View file
drivers/bluetooth/btusb.cmodified+11−7View file
drivers/net/ethernet/broadcom/bnx2x/bnx2x.hmodified+4−4View file
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.cmodified+1−1View file
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.cmodified+1−1View file
drivers/net/ethernet/intel/ixgbe/ixgbe.hmodified+6−6View file
drivers/net/ethernet/intel/ixgbe/ixgbe_main.cmodified+3−3View file
drivers/net/ethernet/mellanox/mlx4/en_ethtool.cmodified+3−3View file
drivers/net/ethernet/mellanox/mlx4/en_netdev.cmodified+3−3View file
drivers/net/ethernet/mellanox/mlx4/fw.cmodified+1−10View file
drivers/net/ethernet/mellanox/mlx4/main.cmodified+1−1View file
drivers/net/ethernet/mellanox/mlx4/mlx4_en.hmodified+5−5View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic.hmodified+3−9View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.cmodified+76−50View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.hmodified+1−1View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.cmodified+61−30View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.cmodified+8−8View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.cmodified+62−21View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.cmodified+27−13View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.hmodified+1−1View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.cmodified+17−8View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.cmodified+67−34View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.cmodified+11−8View file
drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.cmodified+1−1View file
drivers/net/ethernet/realtek/8139cp.cmodified+45−3View file
drivers/net/ethernet/realtek/r8169.cmodified+1−1View file
drivers/net/ethernet/sis/sis900.cmodified+2−10View file
drivers/net/ethernet/ti/cpsw.cmodified+1−1View file
drivers/net/ethernet/ti/davinci_emac.cmodified+1−2View file
drivers/net/macvlan.cmodified+19−4View file
drivers/net/usb/r8152.cmodified+58−68View file
drivers/net/usb/r815x.cmodified+42−20View file
drivers/net/wireless/ath/ath10k/Kconfigmodified+1−1View file
drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.cmodified+4−1View file
drivers/net/wireless/iwlwifi/iwl-prph.hmodified+2−0View file
drivers/net/wireless/iwlwifi/mvm/d3.cmodified+10−5View file
drivers/net/wireless/iwlwifi/mvm/fw-api-scan.hmodified+0−1View file
drivers/net/wireless/iwlwifi/mvm/mac80211.cmodified+21−21View file
drivers/net/wireless/iwlwifi/mvm/scan.cmodified+2−9View file
drivers/net/wireless/iwlwifi/mvm/sta.cmodified+8−3View file
drivers/net/wireless/iwlwifi/pcie/drv.cmodified+1−0View file
drivers/net/wireless/iwlwifi/pcie/rx.cmodified+8−0View file
drivers/net/wireless/iwlwifi/pcie/trans.cmodified+5−0View file
drivers/net/wireless/mwifiex/cfg80211.cmodified+2−2View file
drivers/net/wireless/mwifiex/cfp.cmodified+2−1View file
drivers/net/wireless/mwifiex/join.cmodified+4−2View file
drivers/net/wireless/mwifiex/sdio.cmodified+2−2View file
drivers/net/wireless/mwifiex/sta_ioctl.cmodified+2−2View file
drivers/net/wireless/rt2x00/rt2x00queue.cmodified+11−7View file
include/linux/netdevice.hmodified+1−1View file
include/linux/skbuff.hmodified+1−1View file
include/net/busy_poll.hmodified+8−3View file
include/net/ip6_fib.hmodified+1−1View file
include/net/ndisc.hmodified+1−1View file
include/net/nfc/hci.hmodified+1−1View file
include/net/nfc/nfc.hmodified+2−2View file
include/net/sock.hmodified+1−1View file
include/uapi/linux/nfc.hmodified+3−3View file
net/Kconfigmodified+1−1View file
net/bluetooth/hci_core.cmodified+17−9View file
net/bridge/br_device.cmodified+2−1View file
net/bridge/br_input.cmodified+2−1View file
net/bridge/br_multicast.cmodified+30−9View file
net/bridge/br_private.hmodified+12−0View file
net/core/skbuff.cmodified+1−1View file
net/core/sock.cmodified+3−3View file
net/core/sysctl_net_core.cmodified+6−2View file
net/ipv4/devinet.cmodified+3−1View file
net/ipv6/addrconf.cmodified+22−21View file
net/ipv6/ip6_fib.cmodified+13−12View file
net/ipv6/ndisc.cmodified+2−2View file
net/ipv6/route.cmodified+3−5View file
net/mac80211/mesh_ps.cmodified+4−0View file
net/mac80211/pm.cmodified+5−2View file
net/netlabel/netlabel_cipso_v4.cmodified+2−2View file
net/netlabel/netlabel_domainhash.cmodified+49−55View file
net/netlabel/netlabel_domainhash.hmodified+22−24View file
net/netlabel/netlabel_kapi.cmodified+35−53View file
net/netlabel/netlabel_mgmt.cmodified+21−23View file
net/netlabel/netlabel_unlabeled.cmodified+1−1View file
net/nfc/core.cmodified+10−10View file
net/nfc/hci/core.cmodified+4−4View file
net/nfc/nci/Kconfigmodified+1−0View file
net/nfc/netlink.cmodified+6−6View file
net/nfc/nfc.hmodified+3−3View file
net/sched/sch_atm.cmodified+1−0View file
net/sched/sch_htb.cmodified+1−1View file
net/socket.cmodified+1−1View file
net/tipc/server.cmodified+12−3View file
net/wireless/reg.cmodified+4−1View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/sysctl/net.txt

View file
diff --git a/Documentation/sysctl/net.txt b/Documentation/sysctl/net.txt
index 1c15043..d569f2a 100644
--- a/Documentation/sysctl/net.txt
+++ b/Documentation/sysctl/net.txt
@@ -52,7 +52,7 @@ Default: 64
busy_read
----------------
-Low latency busy poll timeout for socket reads. (needs CONFIG_NET_LL_RX_POLL)
+Low latency busy poll timeout for socket reads. (needs CONFIG_NET_RX_BUSY_POLL)
Approximate time in us to busy loop waiting for packets on the device queue.
This sets the default value of the SO_BUSY_POLL socket option.
Can be set or overridden per socket by setting socket option SO_BUSY_POLL,
@@ -63,7 +63,7 @@ Default: 0 (off)
busy_poll
----------------
-Low latency busy poll timeout for poll and select. (needs CONFIG_NET_LL_RX_POLL)
+Low latency busy poll timeout for poll and select. (needs CONFIG_NET_RX_BUSY_POLL)
Approximate time in us to busy loop waiting for events.
Recommended value depends on the number of sockets you poll on.
For several sockets 50, for several hundreds 100.

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index d83f70f..defc053 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1406,7 +1406,7 @@ ATHEROS ATH6KL WIRELESS DRIVER
M: Kalle Valo <[email protected]>
W: http://wireless.kernel.org/en/users/Drivers/ath6kl
-T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath6kl.git
+T: git git://github.com/kvalo/ath.git
S: Supported
F: drivers/net/wireless/ath/ath6kl/
@@ -6726,6 +6726,14 @@ T: git git://linuxtv.org/anttip/media_tree.git
S: Maintained
F: drivers/media/tuners/qt1010*
+QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
+M: Kalle Valo <[email protected]>
+W: http://wireless.kernel.org/en/users/Drivers/ath10k
+T: git git://github.com/kvalo/ath.git
+S: Supported
+F: drivers/net/wireless/ath/ath10k/
+
QUALCOMM HEXAGON ARCHITECTURE
M: Richard Kuo <[email protected]>
@@ -8270,7 +8278,7 @@ S: Maintained
F: sound/soc/codecs/twl4030*
TI WILINK WIRELESS DRIVERS
-M: Luciano Coelho <[email protected]>
+M: Luciano Coelho <[email protected]>
W: http://wireless.kernel.org/en/users/Drivers/wl12xx
W: http://wireless.kernel.org/en/users/Drivers/wl1251

drivers/bluetooth/ath3k.c

View file
diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
index 11f467c..a12b923 100644
--- a/drivers/bluetooth/ath3k.c
+++ b/drivers/bluetooth/ath3k.c
@@ -91,6 +91,10 @@ static struct usb_device_id ath3k_table[] = {
{ USB_DEVICE(0x0489, 0xe04e) },
{ USB_DEVICE(0x0489, 0xe056) },
{ USB_DEVICE(0x0489, 0xe04d) },
+ { USB_DEVICE(0x04c5, 0x1330) },
+ { USB_DEVICE(0x13d3, 0x3402) },
+ { USB_DEVICE(0x0cf3, 0x3121) },
+ { USB_DEVICE(0x0cf3, 0xe003) },
/* Atheros AR5BBU12 with sflash firmware */
{ USB_DEVICE(0x0489, 0xE02C) },
@@ -128,6 +132,10 @@ static struct usb_device_id ath3k_blist_tbl[] = {
{ USB_DEVICE(0x0489, 0xe04e), .driver_info = BTUSB_ATH3012 },
{ USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 },
{ USB_DEVICE(0x0489, 0xe04d), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x04c5, 0x1330), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x13d3, 0x3402), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x0cf3, 0x3121), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x0cf3, 0xe003), .driver_info = BTUSB_ATH3012 },
/* Atheros AR5BBU22 with sflash firmware */
{ USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 },
@@ -193,24 +201,44 @@ error:
static int ath3k_get_state(struct usb_device *udev, unsigned char *state)
{
- int pipe = 0;
+ int ret, pipe = 0;
+ char *buf;
+
+ buf = kmalloc(sizeof(*buf), GFP_KERNEL);
+ if (!buf)
+ return -ENOMEM;
pipe = usb_rcvctrlpipe(udev, 0);
- return usb_control_msg(udev, pipe, ATH3K_GETSTATE,
- USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
- state, 0x01, USB_CTRL_SET_TIMEOUT);
+ ret = usb_control_msg(udev, pipe, ATH3K_GETSTATE,
+ USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
+ buf, sizeof(*buf), USB_CTRL_SET_TIMEOUT);
+
+ *state = *buf;
+ kfree(buf);
+
+ return ret;
}
static int ath3k_get_version(struct usb_device *udev,
struct ath3k_version *version)
{
- int pipe = 0;
+ int ret, pipe = 0;
+ struct ath3k_version *buf;
+ const int size = sizeof(*buf);
+
+ buf = kmalloc(size, GFP_KERNEL);
+ if (!buf)
+ return -ENOMEM;
pipe = usb_rcvctrlpipe(udev, 0);
- return usb_control_msg(udev, pipe, ATH3K_GETVERSION,
- USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, version,
- sizeof(struct ath3k_version),
- USB_CTRL_SET_TIMEOUT);
+ ret = usb_control_msg(udev, pipe, ATH3K_GETVERSION,
+ USB_TYPE_VENDOR | USB_DIR_IN, 0, 0,
+ buf, size, USB_CTRL_SET_TIMEOUT);
+
+ memcpy(version, buf, size);
+ kfree(buf);
+
+ return ret;
}
static int ath3k_load_fwfile(struct usb_device *udev,

drivers/bluetooth/btusb.c

View file
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index de4cf4d..8e16f0a 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -154,6 +154,10 @@ static struct usb_device_id blacklist_table[] = {
{ USB_DEVICE(0x0489, 0xe04e), .driver_info = BTUSB_ATH3012 },
{ USB_DEVICE(0x0489, 0xe056), .driver_info = BTUSB_ATH3012 },
{ USB_DEVICE(0x0489, 0xe04d), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x04c5, 0x1330), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x13d3, 0x3402), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x0cf3, 0x3121), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x0cf3, 0xe003), .driver_info = BTUSB_ATH3012 },
/* Atheros AR5BBU12 with sflash firmware */
{ USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
@@ -1095,7 +1099,7 @@ static int btusb_setup_intel_patching(struct hci_dev *hdev,
if (IS_ERR(skb)) {
BT_ERR("%s sending Intel patch command (0x%4.4x) failed (%ld)",
hdev->name, cmd->opcode, PTR_ERR(skb));
- return -PTR_ERR(skb);
+ return PTR_ERR(skb);
}
/* It ensures that the returned event matches the event data read from
@@ -1147,7 +1151,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
if (IS_ERR(skb)) {
BT_ERR("%s sending initial HCI reset command failed (%ld)",
hdev->name, PTR_ERR(skb));
- return -PTR_ERR(skb);
+ return PTR_ERR(skb);
}
kfree_skb(skb);
@@ -1161,7 +1165,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
if (IS_ERR(skb)) {
BT_ERR("%s reading Intel fw version command failed (%ld)",
hdev->name, PTR_ERR(skb));
- return -PTR_ERR(skb);
+ return PTR_ERR(skb);
}
if (skb->len != sizeof(*ver)) {
@@ -1219,7 +1223,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
BT_ERR("%s entering Intel manufacturer mode failed (%ld)",
hdev->name, PTR_ERR(skb));
release_firmware(fw);
- return -PTR_ERR(skb);
+ return PTR_ERR(skb);
}
if (skb->data[0]) {
@@ -1276,7 +1280,7 @@ static int btusb_setup_intel(struct hci_dev *hdev)
if (IS_ERR(skb)) {
BT_ERR("%s exiting Intel manufacturer mode failed (%ld)",
hdev->name, PTR_ERR(skb));
- return -PTR_ERR(skb);
+ return PTR_ERR(skb);
}
kfree_skb(skb);
@@ -1292,7 +1296,7 @@ exit_mfg_disable:
if (IS_ERR(skb)) {
BT_ERR("%s exiting Intel manufacturer mode failed (%ld)",
hdev->name, PTR_ERR(skb));
- return -PTR_ERR(skb);
+ return PTR_ERR(skb);
}
kfree_skb(skb);
@@ -1310,7 +1314,7 @@ exit_mfg_deactivate:
if (IS_ERR(skb)) {
BT_ERR("%s exiting Intel manufacturer mode failed (%ld)",
hdev->name, PTR_ERR(skb));
- return -PTR_ERR(skb);
+ return PTR_ERR(skb);
}
kfree_skb(skb);

drivers/net/ethernet/broadcom/bnx2x/bnx2x.h

View file
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
index dedbd76..d80e34b 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
@@ -486,7 +486,7 @@ struct bnx2x_fastpath {
struct napi_struct napi;
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
unsigned int state;
#define BNX2X_FP_STATE_IDLE 0
#define BNX2X_FP_STATE_NAPI (1 << 0) /* NAPI owns this FP */
@@ -498,7 +498,7 @@ struct bnx2x_fastpath {
#define BNX2X_FP_USER_PEND (BNX2X_FP_STATE_POLL | BNX2X_FP_STATE_POLL_YIELD)
/* protect state */
spinlock_t lock;
-#endif /* CONFIG_NET_LL_RX_POLL */
+#endif /* CONFIG_NET_RX_BUSY_POLL */
union host_hc_status_block status_blk;
/* chip independent shortcuts into sb structure */
@@ -572,7 +572,7 @@ struct bnx2x_fastpath {
#define bnx2x_fp_stats(bp, fp) (&((bp)->fp_stats[(fp)->index]))
#define bnx2x_fp_qstats(bp, fp) (&((bp)->fp_stats[(fp)->index].eth_q_stats))
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
static inline void bnx2x_fp_init_lock(struct bnx2x_fastpath *fp)
{
spin_lock_init(&fp->lock);
@@ -680,7 +680,7 @@ static inline bool bnx2x_fp_ll_polling(struct bnx2x_fastpath *fp)
{
return false;
}
-#endif /* CONFIG_NET_LL_RX_POLL */
+#endif /* CONFIG_NET_RX_BUSY_POLL */
/* Use 2500 as a mini-jumbo MTU for FCoE */
#define BNX2X_FCOE_MINI_JUMBO_MTU 2500

drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c

View file
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index ee350bd..f2d1ff1 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -3117,7 +3117,7 @@ int bnx2x_poll(struct napi_struct *napi, int budget)
return work_done;
}
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
/* must be called with local_bh_disable()d */
int bnx2x_low_latency_recv(struct napi_struct *napi)
{

drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c

View file
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index e5da078..e06186c 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -12026,7 +12026,7 @@ static const struct net_device_ops bnx2x_netdev_ops = {
.ndo_fcoe_get_wwn = bnx2x_fcoe_get_wwn,
#endif
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
.ndo_busy_poll = bnx2x_low_latency_recv,
#endif
};

drivers/net/ethernet/intel/ixgbe/ixgbe.h

View file
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
index 7be725c..a6494e5 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h
@@ -54,7 +54,7 @@
#include <net/busy_poll.h>
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
#define LL_EXTENDED_STATS
#endif
/* common prefix used by pr_<> macros */
@@ -366,7 +366,7 @@ struct ixgbe_q_vector {
struct rcu_head rcu; /* to avoid race with update stats on free */
char name[IFNAMSIZ + 9];
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
unsigned int state;
#define IXGBE_QV_STATE_IDLE 0
#define IXGBE_QV_STATE_NAPI 1 /* NAPI owns this QV */
@@ -377,12 +377,12 @@ struct ixgbe_q_vector {
#define IXGBE_QV_YIELD (IXGBE_QV_STATE_NAPI_YIELD | IXGBE_QV_STATE_POLL_YIELD)
#define IXGBE_QV_USER_PEND (IXGBE_QV_STATE_POLL | IXGBE_QV_STATE_POLL_YIELD)
spinlock_t lock;
-#endif /* CONFIG_NET_LL_RX_POLL */
+#endif /* CONFIG_NET_RX_BUSY_POLL */
/* for dynamic allocation of rings associated with this q_vector */
struct ixgbe_ring ring[0] ____cacheline_internodealigned_in_smp;
};
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
static inline void ixgbe_qv_init_lock(struct ixgbe_q_vector *q_vector)
{
@@ -462,7 +462,7 @@ static inline bool ixgbe_qv_ll_polling(struct ixgbe_q_vector *q_vector)
WARN_ON(!(q_vector->state & IXGBE_QV_LOCKED));
return q_vector->state & IXGBE_QV_USER_PEND;
}
-#else /* CONFIG_NET_LL_RX_POLL */
+#else /* CONFIG_NET_RX_BUSY_POLL */
static inline void ixgbe_qv_init_lock(struct ixgbe_q_vector *q_vector)
{
}
@@ -491,7 +491,7 @@ static inline bool ixgbe_qv_ll_polling(struct ixgbe_q_vector *q_vector)
{
return false;
}
-#endif /* CONFIG_NET_LL_RX_POLL */
+#endif /* CONFIG_NET_RX_BUSY_POLL */
#ifdef CONFIG_IXGBE_HWMON

drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

View file
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index bad8f14..be4b1fb 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -1998,7 +1998,7 @@ static int ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
return total_rx_packets;
}
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
/* must be called with local_bh_disable()d */
static int ixgbe_low_latency_recv(struct napi_struct *napi)
{
@@ -2030,7 +2030,7 @@ static int ixgbe_low_latency_recv(struct napi_struct *napi)
return found;
}
-#endif /* CONFIG_NET_LL_RX_POLL */
+#endif /* CONFIG_NET_RX_BUSY_POLL */
/**
* ixgbe_configure_msix - Configure MSI-X hardware
@@ -7227,7 +7227,7 @@ static const struct net_device_ops ixgbe_netdev_ops = {
#ifdef CONFIG_NET_POLL_CONTROLLER
.ndo_poll_controller = ixgbe_netpoll,
#endif
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
.ndo_busy_poll = ixgbe_low_latency_recv,
#endif
#ifdef IXGBE_FCOE

drivers/net/ethernet/mellanox/mlx4/en_ethtool.c

View file
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
index 727874f..a28cd80 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
@@ -223,7 +223,7 @@ static int mlx4_en_get_sset_count(struct net_device *dev, int sset)
case ETH_SS_STATS:
return (priv->stats_bitmap ? bit_count : NUM_ALL_STATS) +
(priv->tx_ring_num * 2) +
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
(priv->rx_ring_num * 5);
#else
(priv->rx_ring_num * 2);
@@ -276,7 +276,7 @@ static void mlx4_en_get_ethtool_stats(struct net_device *dev,
for (i = 0; i < priv->rx_ring_num; i++) {
data[index++] = priv->rx_ring[i].packets;
data[index++] = priv->rx_ring[i].bytes;
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
data[index++] = priv->rx_ring[i].yields;
data[index++] = priv->rx_ring[i].misses;
data[index++] = priv->rx_ring[i].cleaned;
@@ -344,7 +344,7 @@ static void mlx4_en_get_strings(struct net_device *dev,
"rx%d_packets", i);
sprintf(data + (index++) * ETH_GSTRING_LEN,
"rx%d_bytes", i);
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
sprintf(data + (index++) * ETH_GSTRING_LEN,
"rx%d_napi_yield", i);
sprintf(data + (index++) * ETH_GSTRING_LEN,

drivers/net/ethernet/mellanox/mlx4/en_netdev.c

View file
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
index 5eac871..fa37b7a 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c
@@ -68,7 +68,7 @@ int mlx4_en_setup_tc(struct net_device *dev, u8 up)
return 0;
}
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
/* must be called with local_bh_disable()d */
static int mlx4_en_low_latency_recv(struct napi_struct *napi)
{
@@ -94,7 +94,7 @@ static int mlx4_en_low_latency_recv(struct napi_struct *napi)
return done;
}
-#endif /* CONFIG_NET_LL_RX_POLL */
+#endif /* CONFIG_NET_RX_BUSY_POLL */
#ifdef CONFIG_RFS_ACCEL
@@ -2140,7 +2140,7 @@ static const struct net_device_ops mlx4_netdev_ops = {
#ifdef CONFIG_RFS_ACCEL
.ndo_rx_flow_steer = mlx4_en_filter_rfs,
#endif
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
.ndo_busy_poll = mlx4_en_low_latency_recv,
#endif
};

drivers/net/ethernet/mellanox/mlx4/fw.c

View file
diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
index 8873d68..6fc6dab 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -845,16 +845,7 @@ int mlx4_QUERY_PORT_wrapper(struct mlx4_dev *dev, int slave,
MLX4_CMD_NATIVE);
if (!err && dev->caps.function != slave) {
- /* if config MAC in DB use it */
- if (priv->mfunc.master.vf_oper[slave].vport[vhcr->in_modifier].state.mac)
- def_mac = priv->mfunc.master.vf_oper[slave].vport[vhcr->in_modifier].state.mac;
- else {
- /* set slave default_mac address */
- MLX4_GET(def_mac, outbox->buf, QUERY_PORT_MAC_OFFSET);
- def_mac += slave << 8;
- priv->mfunc.master.vf_admin[slave].vport[vhcr->in_modifier].mac = def_mac;
- }
-
+ def_mac = priv->mfunc.master.vf_oper[slave].vport[vhcr->in_modifier].state.mac;
MLX4_PUT(outbox->buf, def_mac, QUERY_PORT_MAC_OFFSET);
/* get port type - currently only eth is enabled */

drivers/net/ethernet/mellanox/mlx4/main.c

View file
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
index e85af92..36be320 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -371,7 +371,7 @@ static int mlx4_dev_cap(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
dev->caps.sqp_demux = (mlx4_is_master(dev)) ? MLX4_MAX_NUM_SLAVES : 0;
- if (!enable_64b_cqe_eqe) {
+ if (!enable_64b_cqe_eqe && !mlx4_is_slave(dev)) {
if (dev_cap->flags &
(MLX4_DEV_CAP_FLAG_64B_CQE | MLX4_DEV_CAP_FLAG_64B_EQE)) {
mlx4_warn(dev, "64B EQEs/CQEs supported by the device but not enabled\n");

drivers/net/ethernet/mellanox/mlx4/mlx4_en.h

View file
diff --git a/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h b/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
index 35fb60e..5e0aa56 100644
--- a/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
+++ b/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
@@ -292,7 +292,7 @@ struct mlx4_en_rx_ring {
void *rx_info;
unsigned long bytes;
unsigned long packets;
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
unsigned long yields;
unsigned long misses;
unsigned long cleaned;
@@ -318,7 +318,7 @@ struct mlx4_en_cq {
struct mlx4_cqe *buf;
#define MLX4_EN_OPCODE_ERROR 0x1e
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
unsigned int state;
#define MLX4_EN_CQ_STATE_IDLE 0
#define MLX4_EN_CQ_STATE_NAPI 1 /* NAPI owns this CQ */
@@ -329,7 +329,7 @@ struct mlx4_en_cq {
#define CQ_YIELD (MLX4_EN_CQ_STATE_NAPI_YIELD | MLX4_EN_CQ_STATE_POLL_YIELD)
#define CQ_USER_PEND (MLX4_EN_CQ_STATE_POLL | MLX4_EN_CQ_STATE_POLL_YIELD)
spinlock_t poll_lock; /* protects from LLS/napi conflicts */
-#endif /* CONFIG_NET_LL_RX_POLL */
+#endif /* CONFIG_NET_RX_BUSY_POLL */
};
struct mlx4_en_port_profile {
@@ -580,7 +580,7 @@ struct mlx4_mac_entry {
struct rcu_head rcu;
};
-#ifdef CONFIG_NET_LL_RX_POLL
+#ifdef CONFIG_NET_RX_BUSY_POLL
static inline void mlx4_en_cq_init_lock(struct mlx4_en_cq *cq)
{
spin_lock_init(&cq->poll_lock);
@@ -687,7 +687,7 @@ static inline bool mlx4_en_cq_ll_polling(struct mlx4_en_cq *cq)
{
return false;
}
-#endif /* CONFIG_NET_LL_RX_POLL */
+#endif /* CONFIG_NET_RX_BUSY_POLL */
#define MLX4_EN_WOL_DO_MODIFY (1ULL << 63)

drivers/net/ethernet/qlogic/qlcnic/qlcnic.h

View file
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
index f4bb8f5..221645e 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic.h
@@ -1400,8 +1400,8 @@ void qlcnic_pci_camqm_write_2M(struct qlcnic_adapter *, u64, u64);
#define ADDR_IN_RANGE(addr, low, high) \
(((addr) < (high)) && ((addr) >= (low)))
-#define QLCRD32(adapter, off) \
- (adapter->ahw->hw_ops->read_reg)(adapter, off)
+#define QLCRD32(adapter, off, err) \
+ (adapter->ahw->hw_ops->read_reg)(adapter, off, err)
#define QLCWR32(adapter, off, val) \
adapter->ahw->hw_ops->write_reg(adapter, off, val)
@@ -1604,7 +1604,7 @@ struct qlcnic_nic_template {
struct qlcnic_hardware_ops {
void (*read_crb) (struct qlcnic_adapter *, char *, loff_t, size_t);
void (*write_crb) (struct qlcnic_adapter *, char *, loff_t, size_t);
- int (*read_reg) (struct qlcnic_adapter *, ulong);
+ int (*read_reg) (struct qlcnic_adapter *, ulong, int *);
int (*write_reg) (struct qlcnic_adapter *, ulong, u32);
void (*get_ocm_win) (struct qlcnic_hardware_context *);
int (*get_mac_address) (struct qlcnic_adapter *, u8 *);
@@ -1662,12 +1662,6 @@ static inline void qlcnic_write_crb(struct qlcnic_adapter *adapter, char *buf,
adapter->ahw->hw_ops->write_crb(adapter, buf, offset, size);
}
-static inline int qlcnic_hw_read_wx_2M(struct qlcnic_adapter *adapter,
- ulong off)
-{
- return adapter->ahw->hw_ops->read_reg(adapter, off);
-}
-
static inline int qlcnic_hw_write_wx_2M(struct qlcnic_adapter *adapter,
ulong off, u32 data)
{

drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c

View file
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
index bc483e1..92da998 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c
@@ -228,17 +228,17 @@ static int __qlcnic_set_win_base(struct qlcnic_adapter *adapter, u32 addr)
return 0;
}
-int qlcnic_83xx_rd_reg_indirect(struct qlcnic_adapter *adapter, ulong addr)
+int qlcnic_83xx_rd_reg_indirect(struct qlcnic_adapter *adapter, ulong addr,
+ int *err)
{
- int ret;
struct qlcnic_hardware_context *ahw = adapter->ahw;
- ret = __qlcnic_set_win_base(adapter, (u32) addr);
- if (!ret) {
+ *err = __qlcnic_set_win_base(adapter, (u32) addr);
+ if (!*err) {
return QLCRDX(ahw, QLCNIC_WILDCARD);
} else {
dev_err(&adapter->pdev->dev,
- "%s failed, addr = 0x%x\n", __func__, (int)addr);
+ "%s failed, addr = 0x%lx\n", __func__, addr);
return -EIO;
}
}
@@ -561,7 +561,7 @@ void qlcnic_83xx_cam_unlock(struct qlcnic_adapter *adapter)
void qlcnic_83xx_read_crb(struct qlcnic_adapter *adapter, char *buf,
loff_t offset, size_t size)
{
- int ret;
+ int ret = 0;
u32 data;
if (qlcnic_api_lock(adapter)) {
@@ -571,7 +571,7 @@ void qlcnic_83xx_read_crb(struct qlcnic_adapter *adapter, char *buf,
return;
}
- ret = qlcnic_83xx_rd_reg_indirect(adapter, (u32) offset);
+ data = QLCRD32(adapter, (u32) offset, &ret);
qlcnic_api_unlock(adapter);
if (ret == -EIO) {
@@ -580,7 +580,6 @@ void qlcnic_83xx_read_crb(struct qlcnic_adapter *adapter, char *buf,
__func__, (u32)offset);
return;

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_ctx.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_ethtool.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_init.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/realtek/8139cp.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/realtek/r8169.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/sis/sis900.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/ti/cpsw.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/ethernet/ti/davinci_emac.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/macvlan.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/usb/r8152.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/usb/r815x.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/ath/ath10k/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/iwlwifi/iwl-prph.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/iwlwifi/mvm/d3.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/iwlwifi/mvm/fw-api-scan.h

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/iwlwifi/mvm/mac80211.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/iwlwifi/mvm/scan.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/iwlwifi/mvm/sta.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/iwlwifi/pcie/drv.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/iwlwifi/pcie/rx.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/iwlwifi/pcie/trans.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/mwifiex/cfg80211.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/mwifiex/cfp.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/mwifiex/join.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/mwifiex/sdio.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/mwifiex/sta_ioctl.c

View file

This diff is incomplete. Download the complete patch.

drivers/net/wireless/rt2x00/rt2x00queue.c

View file

This diff is incomplete. Download the complete patch.

include/linux/netdevice.h

View file

This diff is incomplete. Download the complete patch.

include/linux/skbuff.h

View file

This diff is incomplete. Download the complete patch.

include/net/busy_poll.h

View file

This diff is incomplete. Download the complete patch.

include/net/ip6_fib.h

View file

This diff is incomplete. Download the complete patch.

include/net/ndisc.h

View file

This diff is incomplete. Download the complete patch.

include/net/nfc/hci.h

View file

This diff is incomplete. Download the complete patch.

include/net/nfc/nfc.h

View file

This diff is incomplete. Download the complete patch.

include/net/sock.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/linux/nfc.h

View file

This diff is incomplete. Download the complete patch.

net/Kconfig

View file

This diff is incomplete. Download the complete patch.

net/bluetooth/hci_core.c

View file

This diff is incomplete. Download the complete patch.

net/bridge/br_device.c

View file

This diff is incomplete. Download the complete patch.

net/bridge/br_input.c

View file

This diff is incomplete. Download the complete patch.

net/bridge/br_multicast.c

View file

This diff is incomplete. Download the complete patch.

net/bridge/br_private.h

View file

This diff is incomplete. Download the complete patch.

net/core/skbuff.c

View file

This diff is incomplete. Download the complete patch.

net/core/sock.c

View file

This diff is incomplete. Download the complete patch.

net/core/sysctl_net_core.c

View file

This diff is incomplete. Download the complete patch.

net/ipv4/devinet.c

View file

This diff is incomplete. Download the complete patch.

net/ipv6/addrconf.c

View file

This diff is incomplete. Download the complete patch.

net/ipv6/ip6_fib.c

View file

This diff is incomplete. Download the complete patch.

net/ipv6/ndisc.c

View file

This diff is incomplete. Download the complete patch.

net/ipv6/route.c

View file

This diff is incomplete. Download the complete patch.

net/mac80211/mesh_ps.c

View file

This diff is incomplete. Download the complete patch.

net/mac80211/pm.c

View file

This diff is incomplete. Download the complete patch.

net/netlabel/netlabel_cipso_v4.c

View file

This diff is incomplete. Download the complete patch.

net/netlabel/netlabel_domainhash.c

View file

This diff is incomplete. Download the complete patch.

net/netlabel/netlabel_domainhash.h

View file

This diff is incomplete. Download the complete patch.

net/netlabel/netlabel_kapi.c

View file

This diff is incomplete. Download the complete patch.

net/netlabel/netlabel_mgmt.c

View file

This diff is incomplete. Download the complete patch.

net/netlabel/netlabel_unlabeled.c

View file

This diff is incomplete. Download the complete patch.

net/nfc/core.c

View file

This diff is incomplete. Download the complete patch.

net/nfc/hci/core.c

View file

This diff is incomplete. Download the complete patch.

net/nfc/nci/Kconfig

View file

This diff is incomplete. Download the complete patch.

net/nfc/netlink.c

View file

This diff is incomplete. Download the complete patch.

net/nfc/nfc.h

View file

This diff is incomplete. Download the complete patch.

net/sched/sch_atm.c

View file

This diff is incomplete. Download the complete patch.

net/sched/sch_htb.c

View file

This diff is incomplete. Download the complete patch.

net/socket.c

View file

This diff is incomplete. Download the complete patch.

net/tipc/server.c

View file

This diff is incomplete. Download the complete patch.

net/wireless/reg.c

View file

This diff is incomplete. Download the complete patch.