Netdev List
 help / color / mirror / Atom feed
* [PATCH V3] ipconfig: Inform user if carrier is not ready
From: Erwan Velu @ 2012-09-14 19:30 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, rick.jones2
In-Reply-To: <20120914.151724.505809965127351650.davem@davemloft.net>

From: Erwan Velu <erwanaliasr1@gmail.com>

While using the ip= option at the cmdline, the kernel can hold the boot
process for 2 minutes (CONF_CARRIER_TIMEOUT) if the carrier is not
present.

While waiting the carrier, user is not informed about this situation and
so could think the kernel is frozen.

If we don't get the carrier after some seconds, let's display a message to
inform the user about the remaining time before reaching the timeout.

Signed-off-by: Erwan Velu <erwanaliasr1@gmail.com>
---
  net/ipv4/ipconfig.c |   12 ++++++++++++
  1 file changed, 12 insertions(+)

diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 67e8a6b..b79dca6 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -90,6 +90,7 @@
  /* Define the friendly delay before and after opening net devices */
  #define CONF_POST_OPEN        10    /* After opening: 10 msecs */
  #define CONF_CARRIER_TIMEOUT    120000    /* Wait for carrier timeout */
+#define CONF_WARN_CARRIER_TIMEOUT 5000    /* Time before showing a 
warning message  */

  /* Define the timeout for waiting for a DHCP/BOOTP/RARP reply */
  #define CONF_OPEN_RETRIES     2    /* (Re)open devices twice */
@@ -205,6 +206,7 @@ static int __init ic_open_devs(void)
      struct net_device *dev;
      unsigned short oflags;
      unsigned long start;
+    unsigned int loops=0;

      last = &ic_first_dev;
      rtnl_lock();
@@ -266,6 +268,16 @@ static int __init ic_open_devs(void)
              if (ic_is_init_dev(dev) && netif_carrier_ok(dev))
                  goto have_carrier;

+        /* This loop is blocking the boot process until
+           we get the carrier or reach the timeout.
+           We have to inform the user about the situation as
+           it could look like a kernel freeze.
+           After CONF_WARN_CARRIER_TIMEOUT milliseconds,
+           we display the remaing time before reaching the timeout.*/
+        if (++loops == CONF_WARN_CARRIER_TIMEOUT) {
+            pr_info("IP-Config: Waiting up to %d seconds for carrier on 
interface\n",
+                (CONF_CARRIER_TIMEOUT - CONF_WARN_CARRIER_TIMEOUT)/ 1000);
+        }
          msleep(1);
      }
  have_carrier:
-- 
1.7.10

^ permalink raw reply related

* Re: [PATCH V2] ipconfig: Inform user if carrier is not ready
From: Rick Jones @ 2012-09-14 19:19 UTC (permalink / raw)
  To: Erwan Velu; +Cc: netdev, David Miller
In-Reply-To: <505380A0.7020407@gmail.com>

On 09/14/2012 12:08 PM, Erwan Velu wrote:
> From: Erwan Velu <erwanaliasr1@gmail.com>
>
> While using the ip= option at the cmdline, the kernel can hold the boot
> process for 2 minutes (CONF_CARRIER_TIMEOUT) if the carrier is not
> present.
>
> While waiting the carrier, user is not informed about this situation and
> so could think the kernel is frozen.
>
> If we don't get the carrier after some seconds, let's display a message to
> inform the user about the remaining time before reaching the timeout.

That should be much better than upwards of 120 messages.

rick jones

^ permalink raw reply

* Re: [PATCH V2] ipconfig: Inform user if carrier is not ready
From: David Miller @ 2012-09-14 19:17 UTC (permalink / raw)
  To: erwanaliasr1; +Cc: netdev, rick.jones2
In-Reply-To: <505380A0.7020407@gmail.com>

From: Erwan Velu <erwanaliasr1@gmail.com>
Date: Fri, 14 Sep 2012 21:08:16 +0200

> +        /* This loop is blocking the boot process until
> +         * we get the carrier or reach the timeout.
> +         * We have to inform the user about the situation as
> +         * it could look like a kernel freeze.
> +         * After CONF_WARN_CARRIER_TIMEOUT milliseconds,
> + * we display the remaing time before reaching the timeout. */

This is badly formatted, either because you explicitly did so
or because your email client corrupted the patch.

Either way you have to fix this before we can seriously consider
your patch.

^ permalink raw reply

* [PATCH V2] ipconfig: Inform user if carrier is not ready
From: Erwan Velu @ 2012-09-14 19:08 UTC (permalink / raw)
  To: netdev; +Cc: Rick Jones, David Miller
In-Reply-To: <50525C5D.8040302@hp.com>

From: Erwan Velu <erwanaliasr1@gmail.com>

While using the ip= option at the cmdline, the kernel can hold the boot
process for 2 minutes (CONF_CARRIER_TIMEOUT) if the carrier is not
present.

While waiting the carrier, user is not informed about this situation and
so could think the kernel is frozen.

If we don't get the carrier after some seconds, let's display a message to
inform the user about the remaining time before reaching the timeout.

Signed-off-by: Erwan Velu <erwanaliasr1@gmail.com>
---
  net/ipv4/ipconfig.c |   12 ++++++++++++
  1 file changed, 12 insertions(+)

diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index 67e8a6b..413d22d 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -90,6 +90,7 @@
  /* Define the friendly delay before and after opening net devices */
  #define CONF_POST_OPEN        10    /* After opening: 10 msecs */
  #define CONF_CARRIER_TIMEOUT    120000    /* Wait for carrier timeout */
+#define CONF_WARN_CARRIER_TIMEOUT 5000    /* Time before showing a 
warning message  */

  /* Define the timeout for waiting for a DHCP/BOOTP/RARP reply */
  #define CONF_OPEN_RETRIES     2    /* (Re)open devices twice */
@@ -205,6 +206,7 @@ static int __init ic_open_devs(void)
      struct net_device *dev;
      unsigned short oflags;
      unsigned long start;
+    unsigned int loops=0;

      last = &ic_first_dev;
      rtnl_lock();
@@ -266,6 +268,16 @@ static int __init ic_open_devs(void)
              if (ic_is_init_dev(dev) && netif_carrier_ok(dev))
                  goto have_carrier;

+        /* This loop is blocking the boot process until
+         * we get the carrier or reach the timeout.
+         * We have to inform the user about the situation as
+         * it could look like a kernel freeze.
+         * After CONF_WARN_CARRIER_TIMEOUT milliseconds,
+         * we display the remaing time before reaching the timeout. */
+        if (++loops == CONF_WARN_CARRIER_TIMEOUT) {
+            pr_info("IP-Config: Waiting up to %d seconds for carrier on 
interface\n",
+                (CONF_CARRIER_TIMEOUT - CONF_WARN_CARRIER_TIMEOUT)/ 1000);
+        }
          msleep(1);
      }
  have_carrier:
-- 
1.7.10

^ permalink raw reply related

* [GIT] Networking
From: David Miller @ 2012-09-14 18:48 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, netdev, linux-kernel


Here are the networking fixes that have accumulated over the past few
weeks, most notably:

1) Use after free and new device IDs in bluetooth from Andre Guedes,
   Yevgeniy Melnichuk, Gustavo Padovan, and Henrik Rydberg.

2) Fix crashes with short packet lengths and VLAN in pktgen, from
   Nishank Trivedi.

3) mISDN calls flush_work_sync() with locks held, fix from Karsten
   Keil.

4) Packet scheduler gred parameters are reported to userspace improperly
   scaled, and WRED idling is not performed correctly.  All from
   David Ward.

5) Fix TCP socket refcount problem in ipv6, from Julian Anastasov.

6) ibmveth device has RX queue alignment requirements which are not
   being explicitly met resulting in sporadic failures, fix from
   Santiago Leon.

7) Netfilter needs to take care when interpreting sockets attached
   to socket buffers, they could be time-wait minisockets.  Fix
   from Eric Dumazet.

8) sock_edemux() has the same issue as netfilter did in #7 above,
   fix from Eric Dumazet.

9) Avoid infinite loops in CBQ scheduler with some configurations,
   from Eric Dumazet.

10) Deal with "Reflection scan: an Off-Path Attack on TCP", from
    Jozsef Kadlecsik.

11) SCTP overcharges socket for TX packets, fix from Thomas Graf.

12) CODEL packet scheduler should not reset it's state every
    time it builds a new flow, fix from Eric Dumazet.

13) Fix memory leak in nl80211, from Wei Yongjun.

14) NETROM doesn't check skb_copy_datagram_iovec() return values,
    from Alan Cox.

15) l2tp ethernet was using sizeof(ETH_HLEN) instead of plain
    ETH_HLEN, oops.  From Eric Dumazet.

16) Fix selection of ath9k chips on which PA linearization and
    AM2PM predistoration are used, from Felix Fietkau.

17) Flow steering settings in mlx4 driver need to be validated
    properly, from Hadar Hen Zion.

18) bnx2x doesn't show the correct link duplex setting, from
    Yaniv Rosner.

Please pull, thanks a lot.

The following changes since commit 5b716ac728bcc01b1f2a7ed6e437196602237c27:

  Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 (2012-09-02 11:30:10 -0700)

are available in the git repository at:


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

for you to fetch changes up to 6af773e786ad617b0264ebe06ba60675c01f3e51:

  pktgen: fix crash with vlan and packet size less than 46 (2012-09-13 17:10:00 -0400)

----------------------------------------------------------------
Alan Cox (1):
      netrom: copy_datagram_iovec can fail

Andre Guedes (1):
      Bluetooth: Fix use-after-free bug in SMP

Arend van Spriel (1):
      brcmfmac: fix use of dev_kfree_skb() in irq context

Aviad Yehezkel (2):
      net/mlx4_core: Looking for promiscuous entries on the correct port
      net/mlx4_core: Fixing error flow in case of QUERY_FW failure

Benoît Locher (1):
      can: mcp251x: avoid repeated frame bug

Bjørn Mork (2):
      net: usbnet: fix softirq storm on suspend
      net: qmi_wwan: call subdriver with control intf only

Chema Gonzalez (1):
      net: small bug on rxhash calculation

Daniel Drake (1):
      libertas sdio: fix suspend when interface is down

David S. Miller (3):
      Merge branch 'fixes' of git://git.kernel.org/.../jesse/openvswitch
      Merge branch 'fixes-for-3.6' of git://gitorious.org/linux-can/linux-can
      Merge branch 'master' of git://1984.lsi.us.es/nf

David Ward (4):
      net_sched: gred: correct comment about qavg calculation in RIO mode
      net_sched: gred: eliminate redundant DP prio comparisons
      net_sched: gred: fix qave reporting via netlink
      net_sched: gred: actually perform idling in WRED mode

Dmitry Kravkov (2):
      bnx2x: Avoid sending multiple statistics queries
      bnx2x: fix registers dumped

Eliad Peller (1):
      mac80211: clear bssid on auth/assoc failure

Eric Dumazet (7):
      net: sock_edemux() should take care of timewait sockets
      fq_codel: dont reinit flow state
      l2tp: fix a lockdep splat
      l2tp: fix a typo in l2tp_eth_dev_recv()
      netfilter: take care of timewait sockets
      udp: increment UDP_MIB_INERRORS if copy failed
      net-sched: sch_cbq: avoid infinite loop

Eugenia Emantayev (1):
      net/mlx4_core: Return the error value in case of command initialization failure

Felix Fietkau (6):
      ath9k_hw: do not enable the MIB interrupt in the interrupt mask register
      ath9k_hw: clear the AM2PM predistortion mask on AR933x
      ath9k_hw: calibrate PA input for PA predistortion
      ath9k_hw: disable PA linearization for AR9462
      ath9k: fix PA linearization calibration related crash
      ath9k_hw: enable PA linearization

Florian Fainelli (1):
      ixp4xx_hss: fix build failure due to missing linux/module.h inclusion

Gertjan van Wingerde (3):
      rt2x00: Identify ASUS USB-N53 device.
      rt2x00: Fix word size of rt2500usb MAC_CSR19 register.
      rt2x00: Fix rfkill polling prior to interface start.

Gustavo Padovan (1):
      Bluetooth: Use USB_VENDOR_AND_INTERFACE() for Broadcom devices

Hadar Hen Zion (2):
      net/mlx4_core: Put Firmware flow steering structures in common header files
      net/mlx4_core: Add security check / enforcement for flow steering rules set for VMs

Hante Meuleman (3):
      brcmfmac: dont use ZERO flag for usb IN
      brcmfmac: fix race condition for rx and tx data.
      brcmfmac: fix get rssi by clearing getvar struct.

Henrik Rydberg (1):
      Bluetooth: Add support for Apple vendor-specific devices

Jean Delvare (1):
      |PATCH] seeq: Add missing spinlock init

Jesse Gross (2):
      openvswitch: Relax set header validation.
      openvswitch: Fix FLOW_BUFSIZE definition.

Joe Perches (1):
      netfilter: log: Fix log-level processing

Joe Stringer (1):
      openvswitch: Fix typo

John W. Linville (3):
      Merge branch 'master' of git://git.kernel.org/.../bluetooth/bluetooth
      Merge branch 'for-john' of git://git.kernel.org/.../jberg/mac80211
      Merge branch 'master' of git://git.kernel.org/.../linville/wireless into for-davem

Jozsef Kadlecsik (2):
      netfilter: Mark SYN/ACK packets as invalid from original direction
      netfilter: Validate the sequence number of dataless ACK packets as well

Julian Anastasov (1):
      tcp: fix possible socket refcount problem for ipv6

Karsten Keil (1):
      mISDN: Fix wrong usage of flush_work_sync while holding locks

LEO Airwarosu Yoichi Shinoda (1):
      mac80211: Various small fixes for cfg.c: mpath_set_pinfo()

Lennart Sorensen (1):
      sierra_net: Endianess bug fix.

Marc Kleine-Budde (1):
      rt2x00: fix voltage setting for RT3572/RT3592

Mohammed Shafi Shajakhan (1):
      ath9k: Fix a crash in 2 WIRE btcoex chipsets

Nishank Trivedi (1):
      pktgen: fix crash with vlan and packet size less than 46

Pierre Sauter (1):
      net: qmi_wwan: fix Gobi device probing for un2430

Randy Dunlap (1):
      net: fix net/core/sock.c build error

Santiago Leon (1):
      ibmveth: Fix alignment of rx queue bug

Sergei Poselenov (1):
      rt2800usb: Added rx packet length validity check

Steffen Klassert (1):
      xfrm: Workaround incompatibility of ESN and async crypto

Stone Piao (1):
      mwifiex: fix skb length issue when send a command to firmware

Thomas Graf (1):
      sctp: Don't charge for data in sndbuf again when transmitting packet

Vinicius Costa Gomes (2):
      Bluetooth: Change signature of smp_conn_security()
      Bluetooth: Fix sending a HCI Authorization Request over LE links

Wei Yongjun (3):
      mISDN: fix possible memory leak in hfcmulti_init()
      nl80211: fix possible memory leak nl80211_connect()
      caif: move the dereference below the NULL test

Wu Fengguang (1):
      i825xx: fix paging fault on znet_probe()

Yaniv Rosner (3):
      bnx2x: prevent timeouts when using PFC
      bnx2x: display the correct duplex value
      bnx2x: correct advertisement of pause capabilities

Yevgeniy Melnichuk (1):
      Bluetooth: Add support for Sony Vaio T-Series

Yuval Mintz (2):
      bnx2x: fix stats copying logic
      bnx2x: Add missing afex code

 drivers/bluetooth/ath3k.c                             |   2 ++
 drivers/bluetooth/btusb.c                             |  12 +++++---
 drivers/isdn/hardware/mISDN/avmfritz.c                |   3 +-
 drivers/isdn/hardware/mISDN/hfcmulti.c                |   2 ++
 drivers/isdn/hardware/mISDN/mISDNipac.c               |   3 +-
 drivers/isdn/hardware/mISDN/mISDNisar.c               |   3 +-
 drivers/isdn/hardware/mISDN/netjet.c                  |   3 +-
 drivers/isdn/hardware/mISDN/w6692.c                   |   3 +-
 drivers/isdn/mISDN/hwchannel.c                        |   9 +++---
 drivers/net/can/mcp251x.c                             |  11 ++++++-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h       |  11 +++----
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_dump.h      |  25 +++++----------
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c   |   8 ++++-
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c      |  18 ++++++-----
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c      |  21 ++++++++++---
 drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c     |  15 ++++++---
 drivers/net/ethernet/i825xx/znet.c                    |  13 +++++---
 drivers/net/ethernet/ibm/ibmveth.c                    |  26 ++++++----------
 drivers/net/ethernet/mellanox/mlx4/main.c             |  16 +++++-----
 drivers/net/ethernet/mellanox/mlx4/mcg.c              | 106 +++++++++------------------------------------------------------
 drivers/net/ethernet/mellanox/mlx4/mlx4.h             |  76 +++++++++++++++++++++++++++++++++++++++++++++
 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 drivers/net/ethernet/seeq/sgiseeq.c                   |   1 +
 drivers/net/usb/qmi_wwan.c                            |   9 +++---
 drivers/net/usb/sierra_net.c                          |   2 +-
 drivers/net/usb/usbnet.c                              |  16 +++++++---
 drivers/net/wan/ixp4xx_hss.c                          |   1 +
 drivers/net/wireless/ath/ath9k/ar9003_paprd.c         | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 drivers/net/wireless/ath/ath9k/ar9003_phy.h           |   4 +++
 drivers/net/wireless/ath/ath9k/gpio.c                 |   3 +-
 drivers/net/wireless/ath/ath9k/hw.c                   |  11 +++----
 drivers/net/wireless/ath/ath9k/hw.h                   |   1 +
 drivers/net/wireless/ath/ath9k/link.c                 |  18 +++++------
 drivers/net/wireless/ath/ath9k/xmit.c                 |   3 ++
 drivers/net/wireless/brcm80211/brcmfmac/usb.c         |  30 +++++++++---------
 drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c |  15 ++++-----
 drivers/net/wireless/libertas/if_sdio.c               |   5 +++
 drivers/net/wireless/mwifiex/cmdevt.c                 |  15 ++++++++-
 drivers/net/wireless/rt2x00/rt2400pci.c               |   9 ++++++
 drivers/net/wireless/rt2x00/rt2400pci.h               |   1 +
 drivers/net/wireless/rt2x00/rt2500pci.c               |   9 ++++++
 drivers/net/wireless/rt2x00/rt2500usb.c               |  11 ++++++-
 drivers/net/wireless/rt2x00/rt2500usb.h               |  17 +++++-----
 drivers/net/wireless/rt2x00/rt2800lib.c               |   1 +
 drivers/net/wireless/rt2x00/rt2800pci.c               |   9 ++++++
 drivers/net/wireless/rt2x00/rt2800usb.c               |  22 +++++++++++--
 drivers/net/wireless/rt2x00/rt2x00dev.c               |   2 +-
 drivers/net/wireless/rt2x00/rt61pci.c                 |   9 ++++++
 drivers/net/wireless/rt2x00/rt61pci.h                 |   1 +
 drivers/net/wireless/rt2x00/rt73usb.c                 |   9 ++++++
 drivers/net/wireless/rt2x00/rt73usb.h                 |   3 ++
 include/linux/mISDNhw.h                               |   2 +-
 include/linux/mlx4/device.h                           |  13 ++++++++
 include/net/bluetooth/smp.h                           |   2 +-
 include/net/xfrm.h                                    |   3 ++
 net/bluetooth/hci_conn.c                              |   4 +++
 net/bluetooth/l2cap_core.c                            |  11 ++++---
 net/bluetooth/l2cap_sock.c                            |   2 +-
 net/bluetooth/smp.c                                   |  10 +++---
 net/bridge/netfilter/ebt_log.c                        |   2 +-
 net/caif/cfsrvl.c                                     |   5 +--
 net/core/dev.c                                        |  11 ++++---
 net/core/pktgen.c                                     |   2 +-
 net/core/sock.c                                       |   9 +++++-
 net/ipv4/udp.c                                        |   5 +++
 net/ipv6/tcp_ipv6.c                                   |   5 +--
 net/ipv6/udp.c                                        |  11 +++++++
 net/l2tp/l2tp_core.c                                  |   4 +++
 net/l2tp/l2tp_eth.c                                   |   2 +-
 net/mac80211/cfg.c                                    |   9 +++---
 net/mac80211/mlme.c                                   |   4 +++
 net/netfilter/nf_conntrack_proto_tcp.c                |  29 ++++++------------
 net/netfilter/nfnetlink_log.c                         |  14 +++++----
 net/netfilter/xt_LOG.c                                |  37 +++++++++++-----------
 net/netrom/af_netrom.c                                |   7 ++++-
 net/openvswitch/actions.c                             |   2 +-
 net/openvswitch/datapath.c                            |   6 ++--
 net/openvswitch/flow.h                                |   8 +++--
 net/sched/sch_cbq.c                                   |   5 +--
 net/sched/sch_fq_codel.c                              |   2 +-
 net/sched/sch_gred.c                                  |  38 +++++++++++++----------
 net/sctp/output.c                                     |  21 ++++++++++++-
 net/wireless/nl80211.c                                |   4 ++-
 net/xfrm/xfrm_input.c                                 |   2 +-
 net/xfrm/xfrm_replay.c                                |  15 +++++++++
 85 files changed, 808 insertions(+), 342 deletions(-)

^ permalink raw reply

* pull request: wireless-next 2012-09-14
From: John W. Linville @ 2012-09-14 18:22 UTC (permalink / raw)
  To: davem-fT/PcQaiUtIeIZ0/mPfg9Q
  Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA,
	netdev-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 17912 bytes --]

commit 9316f0e3c6ba524d8fa14bfded048b252891931a

Dave,

This is another batch of updates intended for the 3.7 stream.

There are not a lot of large items, but iwlwifi, mwifiex, rt2x00,
ath9k, and brcmfmac all get some attention.  Wei Yongjun also provides
a series of small maintenance fixes.

This also includes a pull of the wireless tree in order to satisfy
some prerequisites for later patches.

Please let me know if there are problems!

Thanks,

John

---

The following changes since commit 7f2e6a5d8608d0353b017a0fe15502307593734e:

  drivers/isdn/gigaset/common.c: Remove useless kfree (2012-09-13 17:05:17 -0400)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next.git for-davem

for you to fetch changes up to 9316f0e3c6ba524d8fa14bfded048b252891931a:

  Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem (2012-09-14 13:53:49 -0400)

----------------------------------------------------------------

Amitkumar Karwar (9):
      mwifiex: release semaphore acquired for internal scan operation
      mwifiex: don't disable wait_q_enabled flag
      mwifiex: remove get operation code for SUBSCRIBE EVENT command
      mwifiex: remove 11N_CFG command response handler
      mwifiex: remove AMSDU_AGGR_CTRL command response handler
      mwifiex: have same priority for AP and station traffic
      mwifiex: update adapter->bss_prio_tbl[j].bss_prio_cur correctly
      mwifiex: use country ie of requested AP while associating
      mwifiex: support custom world regulatory domain

Andi Kleen (1):
      brcm80211: Remove bogus memcpy in ai_detach

Andre Guedes (1):
      Bluetooth: Fix use-after-free bug in SMP

Andy Shevchenko (1):
      wireless: at76c50x: eliminate hex2str()

Arend van Spriel (3):
      wext: include wireless event id when it has a size problem
      brcmfmac: fix use of dev_kfree_skb() in irq context
      brcmfmac: add callback for nl80211 testmode command

Avinash Patil (2):
      mwifiex: parse rate info for AP
      mwifiex: separate TxPD processing routine for AP

Bing Zhao (3):
      mwifiex: make use of is_zero_ether_addr()
      mwifiex: do not hint regulatory domain with f/w country code
      mwifiex: disable WOW by default

Christian Lamparter (1):
      p54: fix off-by-one null pointer bug in p54_tx_80211

Daniel Drake (2):
      libertas sdio: fix suspend when interface is down
      libertas: set mac control synchronously during init

Daniel Golle (1):
      rt2x00: add MediaTek/RaLink Rt3352 WiSoC

David Spinadel (1):
      iwlwifi: remove radio_config from eeprom_data

Eliad Peller (1):
      mac80211: clear bssid on auth/assoc failure

Felix Fietkau (6):
      ath9k_hw: do not enable the MIB interrupt in the interrupt mask register
      ath9k_hw: clear the AM2PM predistortion mask on AR933x
      ath9k_hw: calibrate PA input for PA predistortion
      ath9k_hw: disable PA linearization for AR9462
      ath9k: fix PA linearization calibration related crash
      ath9k_hw: enable PA linearization

Franky Lin (1):
      brcmfmac: add BCM43241 sdio interface driver support

Gertjan van Wingerde (6):
      rt2x00: Identify ASUS USB-N53 device.
      rt2x00: Fix word size of rt2500usb MAC_CSR19 register.
      rt2x00: Fix rfkill polling prior to interface start.
      rt2x00: Align GPIO register definitions with the datasheets.
      rt2x00: Unify GPIO register field namings
      rt2x00: rt2800 - Make probe_hw function common between PCI and USB.

Gustavo Padovan (1):
      Bluetooth: Use USB_VENDOR_AND_INTERFACE() for Broadcom devices

Hante Meuleman (13):
      brcmfmac: dont use ZERO flag for usb IN
      brcmfmac: fix race condition for rx and tx data.
      brcmfmac: fix get rssi by clearing getvar struct.
      brcmfmac: prevent possible race condition on usb rx control.
      brcmfmac: Add 43242 USB support.
      brcmfmac: Add 43143 USB support.
      brcmfmac: Stop all net if queues on tx flow halt.
      brcmfmac: Add extra data support to firmware event queueing.
      brcmfmac: Add tx flow control on net if queue for USB.
      brcmfmac: Clean up scan related code.
      brcmfmac: refill buffers on rx protocol error.
      brcmfmac: avoid using local usb data.
      brcmfmac: add e-scan support.

Henrik Rydberg (1):
      Bluetooth: Add support for Apple vendor-specific devices

Hila Gonen (1):
      cfg80211: fix indentation

Ilan Peer (1):
      mac80211: Do not check for valid hw_queues for P2P_DEVICE

Jeff Disher (1):
      mwifiex: store mwifiex_ds_misc_subsc_evt in mwifiex_private

Johannes Berg (5):
      iwlwifi: fix antenna bitmask
      mac80211: don't use kerneldoc for ieee80211_add_rx_radiotap_header
      Merge remote-tracking branch 'wireless-next/master' into iwlwifi-next
      iwlwifi: report A-MPDU status
      iwlwifi: reduce overhead if tracing disabled

John W. Linville (6):
      Merge branch 'master' of git://git.kernel.org/.../bluetooth/bluetooth
      Merge branch 'for-john' of git://git.kernel.org/.../jberg/mac80211
      Merge branch 'for-john' of git://git.kernel.org/.../jberg/mac80211-next
      Merge branch 'for-john' of git://git.kernel.org/.../iwlwifi/iwlwifi-next
      Merge branch 'master' of git://git.kernel.org/.../linville/wireless
      Merge branch 'master' of git://git.kernel.org/.../linville/wireless-next into for-davem

Jussi Kivilinna (1):
      zd1211rw: enable support for MFP

LEO Airwarosu Yoichi Shinoda (1):
      mac80211: Various small fixes for cfg.c: mpath_set_pinfo()

Larry Finger (4):
      rtlwifi: rtl8192c: rtl8192de: Fix typo in cursta_connectctate
      rtlwifi: rtl8192c: rtl8192ce: rtl8192cu: rtl8192se: Remove sparse warnings
      rtlwifi: Update header file
      rtlwifi: Remove EXPERIMENTAL as pre-requisite for the drivers

Marc Kleine-Budde (1):
      rt2x00: fix voltage setting for RT3572/RT3592

Ming Lei (1):
      wireless: ath9k-htc: only load firmware in need

Mohammed Shafi Shajakhan (11):
      ath9k: Fix a crash in 2 WIRE btcoex chipsets
      ath9k_hw: small optimization
      ath9k_hw: Fix invalid MCI GPM index access/caching
      ath9k: Fix BTCOEX timer triggering comparision
      ath9k: Make use of ath_stop_ani wrapper
      ath9k: Remove an obselete function declaration
      ath9k: Cleanup add/change_interface callbacks
      ath9k_htc: minor cleanup in ath9k_htc_add_station
      ath9k_htc: Add a modparam to enable BTCOEX rather than default
      ath9k_htc: Cancel BTCOEX related work before disabling BTCOEX
      ath9k: Add Generic hardware timer interrupt in debugfs

Peter Senna Tschudin (2):
      drivers/net/wireless/rtlwifi/rtl8192de/phy.c: removes unnecessary semicolon
      drivers/net/wireless/ath/ath9k/ar9003_mac.c: removes unnecessary semicolon

Rajkumar Manoharan (5):
      ath9k_hw: Read and apply thermometer settings from EEPROM
      ath9k_hw: Read and configure thermocal for AR9462
      ath9k_hw: Wait BT calibration to complete
      ath9k_hw: use peak detection for 5GHz
      ath9k_hw: add 8 points for 5G temp slop

Robert P. J. Day (1):
      cfg80211: add kerneldoc entry for "vht_cap"

Saul St. John (1):
      bcma: don't leak memory for PCIE, MIPS, GBIT cores

Sergei Poselenov (1):
      rt2800usb: Added rx packet length validity check

Stone Piao (1):
      mwifiex: fix skb length issue when send a command to firmware

Sujith Manoharan (11):
      ath9k: Fix TX filter usage
      ath9k_hw: Add version/revision macros for AR9565
      ath9k_hw: Add AR9565 initvals
      ath9k_hw: Add AR9565 HW support
      ath9k: Set correct max streams for AR9565
      ath9k_hw: Fix spur mitigation for AR9565
      ath9k_hw: Program correct PLL value for AR9565
      ath9k: Add PCI ID for AR9565
      ath9k_hw: Handle gentimer termination properly
      ath9k_hw: Rename antenna diversity macros
      ath9k: Choose correct LED pin for AR9565

Vinicius Costa Gomes (2):
      Bluetooth: Change signature of smp_conn_security()
      Bluetooth: Fix sending a HCI Authorization Request over LE links

Wei Yongjun (16):
      nl80211: fix possible memory leak nl80211_connect()
      cfg80211: use list_move_tail instead of list_del/list_add_tail
      ipw2100: use is_zero_ether_addr() and is_broadcast_ether_addr()
      ipw2200: use is_zero_ether_addr() and is_broadcast_ether_addr()
      orinoco: use is_zero_ether_addr() instead of memcmp()
      drivers/net: use is_zero_ether_addr() instead of memcmp()
      airo: use is_zero_ether_addr() and is_broadcast_ether_addr()
      mwifiex: use is_broadcast_ether_addr() instead of memcmp()
      mwifiex: use is_zero_ether_addr() instead of memcmp()
      wireless: use is_broadcast_ether_addr() instead of memcmp()
      wl3501_cs: use is_broadcast_ether_addr() instead of memcmp()
      wl18xx: remove duplicated include from main.c
      airo: remove duplicated include from airo.c
      rtlwifi: rtl8192de: remove pointless conditional before kfree_skb()
      rtlwifi: rtl8192c: remove pointless conditional before kfree_skb()
      rndis_wlan: remove pointless check from rndis_scan()

Yevgeniy Melnichuk (1):
      Bluetooth: Add support for Sony Vaio T-Series

 drivers/bcma/main.c                                |   10 +
 drivers/bluetooth/ath3k.c                          |    2 +
 drivers/bluetooth/btusb.c                          |   12 +-
 drivers/net/wireless/airo.c                        |    7 +-
 drivers/net/wireless/at76c50x-usb.c                |   54 +-
 drivers/net/wireless/ath/ath9k/ani.c               |    2 +-
 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c     |  121 +-
 drivers/net/wireless/ath/ath9k/ar9003_eeprom.h     |    3 +-
 drivers/net/wireless/ath/ath9k/ar9003_hw.c         |   57 +-
 drivers/net/wireless/ath/ath9k/ar9003_mac.c        |    4 +-
 drivers/net/wireless/ath/ath9k/ar9003_mci.c        |   15 +-
 drivers/net/wireless/ath/ath9k/ar9003_mci.h        |    2 -
 drivers/net/wireless/ath/ath9k/ar9003_paprd.c      |  105 +-
 drivers/net/wireless/ath/ath9k/ar9003_phy.c        |  131 ++-
 drivers/net/wireless/ath/ath9k/ar9003_phy.h        |   75 +-
 .../net/wireless/ath/ath9k/ar9462_2p0_initvals.h   |    2 +-
 .../net/wireless/ath/ath9k/ar9565_1p0_initvals.h   | 1233 ++++++++++++++++++++
 drivers/net/wireless/ath/ath9k/ath9k.h             |    3 +-
 drivers/net/wireless/ath/ath9k/debug.c             |    3 +
 drivers/net/wireless/ath/ath9k/debug.h             |    4 +-
 drivers/net/wireless/ath/ath9k/eeprom.h            |    3 +-
 drivers/net/wireless/ath/ath9k/gpio.c              |   12 +-
 drivers/net/wireless/ath/ath9k/hif_usb.c           |   33 +-
 drivers/net/wireless/ath/ath9k/hif_usb.h           |    4 +-
 drivers/net/wireless/ath/ath9k/htc_drv_gpio.c      |   11 +-
 drivers/net/wireless/ath/ath9k/htc_drv_init.c      |    5 +
 drivers/net/wireless/ath/ath9k/htc_drv_main.c      |   14 +-
 drivers/net/wireless/ath/ath9k/hw.c                |   56 +-
 drivers/net/wireless/ath/ath9k/hw.h                |    2 +
 drivers/net/wireless/ath/ath9k/init.c              |    2 +-
 drivers/net/wireless/ath/ath9k/link.c              |   18 +-
 drivers/net/wireless/ath/ath9k/main.c              |   59 +-
 drivers/net/wireless/ath/ath9k/mci.c               |   21 +-
 drivers/net/wireless/ath/ath9k/pci.c               |    1 +
 drivers/net/wireless/ath/ath9k/reg.h               |    9 +
 drivers/net/wireless/ath/ath9k/xmit.c              |    5 +-
 drivers/net/wireless/brcm80211/Kconfig             |    8 +
 .../net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c |    2 +
 drivers/net/wireless/brcm80211/brcmfmac/dhd.h      |   25 +
 drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h  |    2 +-
 .../net/wireless/brcm80211/brcmfmac/dhd_common.c   |    8 +-
 .../net/wireless/brcm80211/brcmfmac/dhd_linux.c    |   24 +-
 drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c |   10 +-
 .../net/wireless/brcm80211/brcmfmac/sdio_chip.c    |   17 +
 drivers/net/wireless/brcm80211/brcmfmac/usb.c      |  237 ++--
 .../net/wireless/brcm80211/brcmfmac/wl_cfg80211.c  |  598 +++++++++-
 .../net/wireless/brcm80211/brcmfmac/wl_cfg80211.h  |   25 +
 drivers/net/wireless/brcm80211/brcmsmac/aiutils.c  |    3 -
 .../net/wireless/brcm80211/include/brcm_hw_ids.h   |    1 +
 drivers/net/wireless/hostap/hostap_info.c          |    4 +-
 drivers/net/wireless/hostap/hostap_ioctl.c         |   15 +-
 drivers/net/wireless/hostap/hostap_main.c          |    2 +-
 drivers/net/wireless/ipw2x00/ipw2100.c             |   11 +-
 drivers/net/wireless/ipw2x00/ipw2200.c             |   11 +-
 drivers/net/wireless/iwlwifi/dvm/commands.h        |    3 +-
 drivers/net/wireless/iwlwifi/dvm/dev.h             |    1 +
 drivers/net/wireless/iwlwifi/dvm/rx.c              |   11 +
 drivers/net/wireless/iwlwifi/iwl-devtrace.h        |   34 +-
 drivers/net/wireless/iwlwifi/iwl-eeprom-parse.h    |    2 -
 drivers/net/wireless/iwlwifi/pcie/tx.c             |   25 +-
 drivers/net/wireless/libertas/cmd.c                |   16 +
 drivers/net/wireless/libertas/cmd.h                |    1 +
 drivers/net/wireless/libertas/if_sdio.c            |    5 +
 drivers/net/wireless/libertas/main.c               |    4 +-
 drivers/net/wireless/mwifiex/11n.c                 |   38 -
 drivers/net/wireless/mwifiex/11n.h                 |    5 -
 drivers/net/wireless/mwifiex/cfg80211.c            |   51 +-
 drivers/net/wireless/mwifiex/cmdevt.c              |   15 +-
 drivers/net/wireless/mwifiex/fw.h                  |    8 +-
 drivers/net/wireless/mwifiex/init.c                |    6 +-
 drivers/net/wireless/mwifiex/ioctl.h               |    7 +-
 drivers/net/wireless/mwifiex/main.c                |    1 -
 drivers/net/wireless/mwifiex/main.h                |    9 +-
 drivers/net/wireless/mwifiex/scan.c                |    4 +-
 drivers/net/wireless/mwifiex/sta_cmd.c             |    3 +-
 drivers/net/wireless/mwifiex/sta_cmdresp.c         |   38 +-
 drivers/net/wireless/mwifiex/sta_ioctl.c           |   40 +
 drivers/net/wireless/mwifiex/txrx.c                |    6 +-
 drivers/net/wireless/mwifiex/uap_cmd.c             |   39 +-
 drivers/net/wireless/mwifiex/uap_txrx.c            |   70 ++
 drivers/net/wireless/mwifiex/wmm.c                 |    9 +-
 drivers/net/wireless/orinoco/wext.c                |    7 +-
 drivers/net/wireless/p54/main.c                    |    3 +-
 drivers/net/wireless/rndis_wlan.c                  |    3 -
 drivers/net/wireless/rt2x00/rt2400pci.c            |   11 +-
 drivers/net/wireless/rt2x00/rt2400pci.h            |   26 +-
 drivers/net/wireless/rt2x00/rt2500pci.c            |   11 +-
 drivers/net/wireless/rt2x00/rt2500pci.h            |   18 +-
 drivers/net/wireless/rt2x00/rt2500usb.c            |   11 +-
 drivers/net/wireless/rt2x00/rt2500usb.h            |   26 +-
 drivers/net/wireless/rt2x00/rt2800.h               |   52 +-
 drivers/net/wireless/rt2x00/rt2800lib.c            |  330 +++++-
 drivers/net/wireless/rt2x00/rt2800lib.h            |   22 +-
 drivers/net/wireless/rt2x00/rt2800pci.c            |   73 +-
 drivers/net/wireless/rt2x00/rt2800usb.c            |   65 +-
 drivers/net/wireless/rt2x00/rt2x00.h               |    1 +
 drivers/net/wireless/rt2x00/rt2x00dev.c            |    2 +-
 drivers/net/wireless/rt2x00/rt61pci.c              |   19 +-
 drivers/net/wireless/rt2x00/rt61pci.h              |   27 +-
 drivers/net/wireless/rt2x00/rt73usb.c              |   11 +-
 drivers/net/wireless/rt2x00/rt73usb.h              |   31 +-
 drivers/net/wireless/rtlwifi/Kconfig               |    8 +-
 drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c  |   41 +-
 drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c  |    3 +-
 drivers/net/wireless/rtlwifi/rtl8192ce/hw.c        |    4 +-
 drivers/net/wireless/rtlwifi/rtl8192ce/sw.c        |    2 +-
 drivers/net/wireless/rtlwifi/rtl8192cu/trx.c       |    2 +-
 drivers/net/wireless/rtlwifi/rtl8192de/dm.c        |   10 +-
 drivers/net/wireless/rtlwifi/rtl8192de/fw.c        |    3 +-
 drivers/net/wireless/rtlwifi/rtl8192de/phy.c       |    2 +-
 drivers/net/wireless/rtlwifi/rtl8192se/trx.c       |    6 +-
 drivers/net/wireless/rtlwifi/usb.c                 |    2 +-
 drivers/net/wireless/rtlwifi/wifi.h                |  108 +-
 drivers/net/wireless/ti/wl18xx/main.c              |    1 -
 drivers/net/wireless/wl3501_cs.c                   |    3 +-
 drivers/net/wireless/zd1211rw/zd_mac.c             |    3 +-
 include/net/bluetooth/smp.h                        |    2 +-
 include/net/cfg80211.h                             |    1 +
 net/bluetooth/hci_conn.c                           |    4 +
 net/bluetooth/l2cap_core.c                         |   11 +-
 net/bluetooth/l2cap_sock.c                         |    2 +-
 net/bluetooth/smp.c                                |   10 +-
 net/mac80211/cfg.c                                 |    9 +-
 net/mac80211/iface.c                               |   16 +-
 net/mac80211/mlme.c                                |    4 +
 net/mac80211/rx.c                                  |    2 +-
 net/wireless/nl80211.c                             |    4 +-
 net/wireless/reg.c                                 |    6 +-
 net/wireless/scan.c                                |    2 +-
 net/wireless/wext-core.c                           |    8 +-
 130 files changed, 3664 insertions(+), 918 deletions(-)
 create mode 100644 drivers/net/wireless/ath/ath9k/ar9565_1p0_initvals.h
-- 
John W. Linville		Someday the world will need a hero, and you
linville-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org			might be all we have.  Be ready.

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply

* Re: [PATCH V2] netfilter/iptables: Fix log-level processing
From: auto75914331 @ 2012-09-14 18:03 UTC (permalink / raw)
  To: Joe Perches, Eric Dumazet
  Cc: Bart De Schuymer, Pablo Neira Ayuso, Patrick McHardy,
	Stephen Hemminger, netfilter-devel, netfilter, coreteam, bridge,
	netdev, linux-kernel

thanks, propably works, will not test



On 12.09.2012 at 3:05 PM, Joe Perches <joe@perches.com> wrote:
>
>auto75914331@hushmail.com reports that iptables does not correctly
>output the KERN_<level>.
>
>$IPTABLES -A RULE_0_in  -j LOG  --log-level notice --log-prefix 
>"DENY  in: "
>
>result with linux 3.6-rc5
>Sep 12 06:37:29 xxxxx kernel: <5>DENY  in: IN=eth0 OUT= MAC=.......
>
>result with linux 3.5.3 and older:
>Sep  9 10:43:01 xxxxx kernel: DENY  in: IN=eth0 OUT= MAC......
>
>commit 04d2c8c83d0
>("printk: convert the format for KERN_<LEVEL> to a 2 byte pattern")
>updated the syslog header style but did not update netfilter uses.
>
>Do so.
>
>Signed-off-by: Joe Perches <joe@perches.com>
>cc: auto75914331@hushmail.com
>---
>v2: Use KERN_SOH and string concatenation instead of "%c" 
>KERN_SOH_ASCII
>as suggested by Eric Dumazet.
>
> net/bridge/netfilter/ebt_log.c |    2 +-
> net/netfilter/xt_LOG.c         |    4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
>diff --git a/net/bridge/netfilter/ebt_log.c 
>b/net/bridge/netfilter/ebt_log.c
>index f88ee53..92de5e5 100644
>--- a/net/bridge/netfilter/ebt_log.c
>+++ b/net/bridge/netfilter/ebt_log.c
>@@ -80,7 +80,7 @@ ebt_log_packet(u_int8_t pf, unsigned int hooknum,
> 	unsigned int bitmask;
> 
> 	spin_lock_bh(&ebt_log_lock);
>-	printk("<%c>%s IN=%s OUT=%s MAC source = %pM MAC dest = %pM 
>proto = 0x%04x",
>+	printk(KERN_SOH "%c%s IN=%s OUT=%s MAC source = %pM MAC dest = 
>%pM proto = 0x%04x",
> 	       '0' + loginfo->u.log.level, prefix,
> 	       in ? in->name : "", out ? out->name : "",
> 	       eth_hdr(skb)->h_source, eth_hdr(skb)->h_dest,
>diff --git a/net/netfilter/xt_LOG.c b/net/netfilter/xt_LOG.c
>index ff5f75f..d1609dd 100644
>--- a/net/netfilter/xt_LOG.c
>+++ b/net/netfilter/xt_LOG.c
>@@ -436,8 +436,8 @@ log_packet_common(struct sbuff *m,
> 		  const struct nf_loginfo *loginfo,
> 		  const char *prefix)
> {
>-	sb_add(m, "<%d>%sIN=%s OUT=%s ", loginfo->u.log.level,
>-	       prefix,
>+	sb_add(m, KERN_SOH "%c%sIN=%s OUT=%s ",
>+	       '0' + loginfo->u.log.level, prefix,
> 	       in ? in->name : "",
> 	       out ? out->name : "");
> #ifdef CONFIG_BRIDGE_NETFILTER

^ permalink raw reply

* pull request: wireless 2012-09-14
From: John W. Linville @ 2012-09-14 17:46 UTC (permalink / raw)
  To: davem; +Cc: linux-wireless, netdev, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 13818 bytes --]

commit 7a253c2954dad9d70fa2e07b45b55ea4bee6c6c7

Dave,

This is a batch of fixes intended for the 3.6 stream.

Arend van Spriel sends a simple thinko fix to correct a constant,
preventing the setting of an invalid power level.

Colin Ian King gives us a simple allocation failure check to avoid a
NULL pointer dereference.

Felix Fietkau sends another ath9k tx power patch, this time disabling a
feature that has been reported to cause rx problems.

Hante Meuleman provides a pair of endian fixes for brcmfmac.

Larry Finger offers an rtlwifi fix that avoids a system lockup related
to loading the wrong firmware for RTL8188CE devices.

These have been in linux-next for a few days and I think they should be
included in the final 3.6 kernel if possible.

Please let me know if there are problems!

Thanks,

John

---

The following changes since commit 6af773e786ad617b0264ebe06ba60675c01f3e51:

  pktgen: fix crash with vlan and packet size less than 46 (2012-09-13 17:10:00 -0400)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless.git for-davem

for you to fetch changes up to 7a253c2954dad9d70fa2e07b45b55ea4bee6c6c7:

  Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem (2012-09-14 11:39:39 -0400)

----------------------------------------------------------------

Arend van Spriel (1):
      brcmsmac: fix mismatch in number of custom regulatory rules

Colin Ian King (1):
      brcm80211: fix missing allocation failure check

Felix Fietkau (1):
      ath9k: make PA linearization optional, disabled by default and fix checks

Hante Meuleman (2):
      brcmfmac: fix big endian bug in i-scan.
      brcmfmac: Fix big endian host configuration data.

John W. Linville (1):
      Merge branch 'master' of git://git.kernel.org/.../linville/wireless into for-davem

Larry Finger (1):
      rtlwifi: rtl8192ce: Log message that B_CUT device may not work

 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c     |  4 ++++
 drivers/net/wireless/ath/ath9k/debug.c             |  2 ++
 drivers/net/wireless/ath/ath9k/hw.c                |  4 ----
 drivers/net/wireless/ath/ath9k/hw.h                |  3 +--
 drivers/net/wireless/ath/ath9k/link.c              |  2 +-
 .../net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c |  2 ++
 .../net/wireless/brcm80211/brcmfmac/dhd_common.c   | 26 +++++++++++++---------
 .../net/wireless/brcm80211/brcmfmac/wl_cfg80211.c  |  6 +++--
 drivers/net/wireless/brcm80211/brcmsmac/channel.c  |  2 +-
 drivers/net/wireless/rtlwifi/rtl8192ce/def.h       |  1 +
 drivers/net/wireless/rtlwifi/rtl8192ce/hw.c        | 12 ++++++++--
 drivers/net/wireless/rtlwifi/rtl8192ce/sw.c        |  6 +++--
 12 files changed, 46 insertions(+), 24 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
index 2588848..d066f25 100644
--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
+++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.c
@@ -2982,6 +2982,10 @@ static u32 ath9k_hw_ar9300_get_eeprom(struct ath_hw *ah,
 	case EEP_RX_MASK:
 		return pBase->txrxMask & 0xf;
 	case EEP_PAPRD:
+		if (AR_SREV_9462(ah))
+			return false;
+		if (!ah->config.enable_paprd);
+			return false;
 		return !!(pBase->featureEnable & BIT(5));
 	case EEP_CHAIN_MASK_REDUCE:
 		return (pBase->miscConfiguration >> 0x3) & 0x1;
diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c
index 68b643c..c8ef301 100644
--- a/drivers/net/wireless/ath/ath9k/debug.c
+++ b/drivers/net/wireless/ath/ath9k/debug.c
@@ -1577,6 +1577,8 @@ int ath9k_init_debug(struct ath_hw *ah)
 			    sc->debug.debugfs_phy, sc, &fops_tx_chainmask);
 	debugfs_create_file("disable_ani", S_IRUSR | S_IWUSR,
 			    sc->debug.debugfs_phy, sc, &fops_disable_ani);
+	debugfs_create_bool("paprd", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
+			    &sc->sc_ah->config.enable_paprd);
 	debugfs_create_file("regidx", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
 			    sc, &fops_regidx);
 	debugfs_create_file("regval", S_IRUSR | S_IWUSR, sc->debug.debugfs_phy,
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index 48af401..4faf0a3 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -2497,10 +2497,6 @@ int ath9k_hw_fill_cap_info(struct ath_hw *ah)
 		pCap->rx_status_len = sizeof(struct ar9003_rxs);
 		pCap->tx_desc_len = sizeof(struct ar9003_txc);
 		pCap->txs_len = sizeof(struct ar9003_txs);
-		if (!ah->config.paprd_disable &&
-		    ah->eep_ops->get_eeprom(ah, EEP_PAPRD) &&
-		    !AR_SREV_9462(ah))
-			pCap->hw_caps |= ATH9K_HW_CAP_PAPRD;
 	} else {
 		pCap->tx_desc_len = sizeof(struct ath_desc);
 		if (AR_SREV_9280_20(ah))
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
index 6599a75..de6968f 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -236,7 +236,6 @@ enum ath9k_hw_caps {
 	ATH9K_HW_CAP_LDPC			= BIT(6),
 	ATH9K_HW_CAP_FASTCLOCK			= BIT(7),
 	ATH9K_HW_CAP_SGI_20			= BIT(8),
-	ATH9K_HW_CAP_PAPRD			= BIT(9),
 	ATH9K_HW_CAP_ANT_DIV_COMB		= BIT(10),
 	ATH9K_HW_CAP_2GHZ			= BIT(11),
 	ATH9K_HW_CAP_5GHZ			= BIT(12),
@@ -287,12 +286,12 @@ struct ath9k_ops_config {
 	u8 pcie_clock_req;
 	u32 pcie_waen;
 	u8 analog_shiftreg;
-	u8 paprd_disable;
 	u32 ofdm_trig_low;
 	u32 ofdm_trig_high;
 	u32 cck_trig_high;
 	u32 cck_trig_low;
 	u32 enable_ani;
+	u32 enable_paprd;
 	int serialize_regmode;
 	bool rx_intr_mitigation;
 	bool tx_intr_mitigation;
diff --git a/drivers/net/wireless/ath/ath9k/link.c b/drivers/net/wireless/ath/ath9k/link.c
index 825a29c..7b88b9c 100644
--- a/drivers/net/wireless/ath/ath9k/link.c
+++ b/drivers/net/wireless/ath/ath9k/link.c
@@ -423,7 +423,7 @@ set_timer:
 		cal_interval = min(cal_interval, (u32)short_cal_interval);
 
 	mod_timer(&common->ani.timer, jiffies + msecs_to_jiffies(cal_interval));
-	if ((sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_PAPRD) && ah->caldata) {
+	if (ah->eep_ops->get_eeprom(ah, EEP_PAPRD) && ah->caldata) {
 		if (!ah->caldata->paprd_done)
 			ieee80211_queue_work(sc->hw, &sc->paprd_work);
 		else if (!ah->paprd_table_write_done)
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
index 49765d3..7c4ee72 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
@@ -638,6 +638,8 @@ static int brcmf_sdio_pd_probe(struct platform_device *pdev)
 
 		oobirq_entry = kzalloc(sizeof(struct brcmf_sdio_oobirq),
 				       GFP_KERNEL);
+		if (!oobirq_entry)
+			return -ENOMEM;
 		oobirq_entry->irq = res->start;
 		oobirq_entry->flags = res->flags & IRQF_TRIGGER_MASK;
 		list_add_tail(&oobirq_entry->list, &oobirq_lh);
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c
index 2621dd3..6f70953 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c
@@ -764,8 +764,11 @@ static void brcmf_c_arp_offload_set(struct brcmf_pub *drvr, int arp_mode)
 {
 	char iovbuf[32];
 	int retcode;
+	__le32 arp_mode_le;
 
-	brcmf_c_mkiovar("arp_ol", (char *)&arp_mode, 4, iovbuf, sizeof(iovbuf));
+	arp_mode_le = cpu_to_le32(arp_mode);
+	brcmf_c_mkiovar("arp_ol", (char *)&arp_mode_le, 4, iovbuf,
+			sizeof(iovbuf));
 	retcode = brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_VAR,
 				   iovbuf, sizeof(iovbuf));
 	retcode = retcode >= 0 ? 0 : retcode;
@@ -781,8 +784,11 @@ static void brcmf_c_arp_offload_enable(struct brcmf_pub *drvr, int arp_enable)
 {
 	char iovbuf[32];
 	int retcode;
+	__le32 arp_enable_le;
 
-	brcmf_c_mkiovar("arpoe", (char *)&arp_enable, 4,
+	arp_enable_le = cpu_to_le32(arp_enable);
+
+	brcmf_c_mkiovar("arpoe", (char *)&arp_enable_le, 4,
 			iovbuf, sizeof(iovbuf));
 	retcode = brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_VAR,
 				   iovbuf, sizeof(iovbuf));
@@ -800,10 +806,10 @@ int brcmf_c_preinit_dcmds(struct brcmf_pub *drvr)
 	char iovbuf[BRCMF_EVENTING_MASK_LEN + 12];	/*  Room for
 				 "event_msgs" + '\0' + bitvec  */
 	char buf[128], *ptr;
-	u32 roaming = 1;
-	uint bcn_timeout = 3;
-	int scan_assoc_time = 40;
-	int scan_unassoc_time = 40;
+	__le32 roaming_le = cpu_to_le32(1);
+	__le32 bcn_timeout_le = cpu_to_le32(3);
+	__le32 scan_assoc_time_le = cpu_to_le32(40);
+	__le32 scan_unassoc_time_le = cpu_to_le32(40);
 	int i;
 	struct brcmf_bus_dcmd *cmdlst;
 	struct list_head *cur, *q;
@@ -829,14 +835,14 @@ int brcmf_c_preinit_dcmds(struct brcmf_pub *drvr)
 
 	/* Setup timeout if Beacons are lost and roam is off to report
 		 link down */
-	brcmf_c_mkiovar("bcn_timeout", (char *)&bcn_timeout, 4, iovbuf,
+	brcmf_c_mkiovar("bcn_timeout", (char *)&bcn_timeout_le, 4, iovbuf,
 		    sizeof(iovbuf));
 	brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_VAR, iovbuf,
 				  sizeof(iovbuf));
 
 	/* Enable/Disable build-in roaming to allowed ext supplicant to take
 		 of romaing */
-	brcmf_c_mkiovar("roam_off", (char *)&roaming, 4,
+	brcmf_c_mkiovar("roam_off", (char *)&roaming_le, 4,
 		      iovbuf, sizeof(iovbuf));
 	brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_VAR, iovbuf,
 				  sizeof(iovbuf));
@@ -848,9 +854,9 @@ int brcmf_c_preinit_dcmds(struct brcmf_pub *drvr)
 				  sizeof(iovbuf));
 
 	brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_SCAN_CHANNEL_TIME,
-			 (char *)&scan_assoc_time, sizeof(scan_assoc_time));
+		 (char *)&scan_assoc_time_le, sizeof(scan_assoc_time_le));
 	brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_SCAN_UNASSOC_TIME,
-			 (char *)&scan_unassoc_time, sizeof(scan_unassoc_time));
+		 (char *)&scan_unassoc_time_le, sizeof(scan_unassoc_time_le));
 
 	/* Set and enable ARP offload feature */
 	brcmf_c_arp_offload_set(drvr, BRCMF_ARPOL_MODE);
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
index c36e923..50b5553 100644
--- a/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.c
@@ -500,8 +500,10 @@ static void wl_iscan_prep(struct brcmf_scan_params_le *params_le,
 	params_le->active_time = cpu_to_le32(-1);
 	params_le->passive_time = cpu_to_le32(-1);
 	params_le->home_time = cpu_to_le32(-1);
-	if (ssid && ssid->SSID_len)
-		memcpy(&params_le->ssid_le, ssid, sizeof(struct brcmf_ssid));
+	if (ssid && ssid->SSID_len) {
+		params_le->ssid_le.SSID_len = cpu_to_le32(ssid->SSID_len);
+		memcpy(&params_le->ssid_le.SSID, ssid->SSID, ssid->SSID_len);
+	}
 }
 
 static s32
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/channel.c b/drivers/net/wireless/brcm80211/brcmsmac/channel.c
index 7ed7d75..64a48f0 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/channel.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/channel.c
@@ -77,7 +77,7 @@
 					 NL80211_RRF_NO_IBSS)
 
 static const struct ieee80211_regdomain brcms_regdom_x2 = {
-	.n_reg_rules = 7,
+	.n_reg_rules = 6,
 	.alpha2 = "X2",
 	.reg_rules = {
 		BRCM_2GHZ_2412_2462,
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/def.h b/drivers/net/wireless/rtlwifi/rtl8192ce/def.h
index 04c3aef..2925094 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/def.h
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/def.h
@@ -117,6 +117,7 @@
 
 #define CHIP_VER_B			BIT(4)
 #define CHIP_92C_BITMASK		BIT(0)
+#define CHIP_UNKNOWN			BIT(7)
 #define CHIP_92C_1T2R			0x03
 #define CHIP_92C			0x01
 #define CHIP_88C			0x00
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
index bd0da7e..dd4bb09 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
@@ -994,8 +994,16 @@ static enum version_8192c _rtl92ce_read_chip_version(struct ieee80211_hw *hw)
 		version = (value32 & TYPE_ID) ? VERSION_A_CHIP_92C :
 			   VERSION_A_CHIP_88C;
 	} else {
-		version = (value32 & TYPE_ID) ? VERSION_B_CHIP_92C :
-			   VERSION_B_CHIP_88C;
+		version = (enum version_8192c) (CHIP_VER_B |
+				((value32 & TYPE_ID) ? CHIP_92C_BITMASK : 0) |
+				((value32 & VENDOR_ID) ? CHIP_VENDOR_UMC : 0));
+		if ((!IS_CHIP_VENDOR_UMC(version)) && (value32 &
+		     CHIP_VER_RTL_MASK)) {
+			version = (enum version_8192c)(version |
+				   ((((value32 & CHIP_VER_RTL_MASK) == BIT(12))
+				   ? CHIP_VENDOR_UMC_B_CUT : CHIP_UNKNOWN) |
+				   CHIP_VENDOR_UMC));
+		}
 	}
 
 	switch (version) {
diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c b/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
index 3aa927f..7d8f964 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/sw.c
@@ -162,10 +162,12 @@ int rtl92c_init_sw_vars(struct ieee80211_hw *hw)
 
 	/* request fw */
 	if (IS_VENDOR_UMC_A_CUT(rtlhal->version) &&
-	    !IS_92C_SERIAL(rtlhal->version))
+	    !IS_92C_SERIAL(rtlhal->version)) {
 		rtlpriv->cfg->fw_name = "rtlwifi/rtl8192cfwU.bin";
-	else if (IS_81xxC_VENDOR_UMC_B_CUT(rtlhal->version))
+	} else if (IS_81xxC_VENDOR_UMC_B_CUT(rtlhal->version)) {
 		rtlpriv->cfg->fw_name = "rtlwifi/rtl8192cfwU_B.bin";
+		pr_info("****** This B_CUT device may not work with kernels 3.6 and earlier\n");
+	}
 
 	rtlpriv->max_fw_size = 0x4000;
 	pr_info("Using firmware %s\n", rtlpriv->cfg->fw_name);
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply related

* Re: [PATCH net-next 2/2] gre: add GSO support
From: Eric Dumazet @ 2012-09-14 17:45 UTC (permalink / raw)
  To: Maciej Żenczykowski; +Cc: David Miller, netdev
In-Reply-To: <CANP3RGckqqPnmfLjfqxOKuxJEkvzN9-5v+BqVZ_9GuYyo+EDHw@mail.gmail.com>

On Fri, 2012-09-14 at 10:12 -0700, Maciej Żenczykowski wrote:
> Thanks!
> 
> So I'm guessing it should be easy to add support like this to IPIP and
> SIT now as well
> (not sure if they're missing, but I'd assume so)?

Yes, absolutely.

I was also playing adding GRO support to tunnels.

Here the prototype patch I currently have, it gives very nice speedups

diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index b062a98..ca6ab66 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -589,6 +589,65 @@ ipgre_ecn_encapsulate(u8 tos, const struct iphdr *old_iph, struct sk_buff *skb)
 	return INET_ECN_encapsulate(tos, inner);
 }
 
+static void tunnel_prequeue(struct ip_tunnel *tunnel, struct sk_buff *skb)
+{
+	unsigned long flags;
+	const struct iphdr *iph;
+
+	if (skb_cloned(skb)) {
+		netif_rx(skb);
+		return;
+	}
+	if (!pskb_may_pull(skb, sizeof(*iph)) ||
+	    skb_queue_len(&tunnel->napi_skbs) > 1000) {
+drop:
+		atomic_long_inc(&tunnel->dev->rx_dropped);
+		kfree_skb(skb);
+		return;
+	}
+	iph = ip_hdr(skb);
+	if (*(u8 *)iph == 0x45 &&
+	    iph->protocol == IPPROTO_TCP &&
+	    skb->ip_summed == CHECKSUM_NONE) {
+		__skb_pull(skb, sizeof(*iph));
+
+		skb->csum = csum_tcpudp_nofold(iph->saddr, iph->daddr,
+					       skb->len, IPPROTO_TCP, 0);
+		if (__skb_checksum_complete(skb))
+			goto drop;
+
+		__skb_push(skb, sizeof(*iph));
+	}
+
+	spin_lock_irqsave(&tunnel->napi_skbs.lock, flags);
+
+	__skb_queue_tail(&tunnel->napi_skbs, skb);
+	if (skb_queue_len(&tunnel->napi_skbs) == 1)
+		napi_schedule(&tunnel->napi);
+
+	spin_unlock_irqrestore(&tunnel->napi_skbs.lock, flags);
+}
+
+static int tunnel_napi_poll(struct napi_struct *napi, int budget)
+{
+	struct ip_tunnel *tunnel = container_of(napi, struct ip_tunnel, napi);
+	struct sk_buff *skb;
+	int work_done = 0;
+
+	while (work_done < budget) {
+		skb = skb_dequeue(&tunnel->napi_skbs);
+		if (!skb)
+			break;
+		skb->next = NULL;
+		napi_gro_receive(napi, skb);
+		work_done++;
+	}
+
+	if (work_done < budget)
+		napi_complete(napi);
+	return work_done;
+}
+
 static int ipgre_rcv(struct sk_buff *skb)
 {
 	const struct iphdr *iph;
@@ -714,8 +773,7 @@ static int ipgre_rcv(struct sk_buff *skb)
 		skb_reset_network_header(skb);
 		ipgre_ecn_decapsulate(iph, skb);
 
-		netif_rx(skb);
-
+		tunnel_prequeue(tunnel, skb);
 		rcu_read_unlock();
 		return 0;
 	}
@@ -745,6 +803,10 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev
 	__be32 dst;
 	int    mtu;
 
+	if (skb->ip_summed == CHECKSUM_PARTIAL &&
+	    skb_checksum_help(skb))
+		goto tx_error;
+
 	if (dev->type == ARPHRD_ETHER)
 		IPCB(skb)->flags = 0;
 
@@ -1292,10 +1354,19 @@ static const struct net_device_ops ipgre_netdev_ops = {
 
 static void ipgre_dev_free(struct net_device *dev)
 {
+	struct ip_tunnel *tunnel = netdev_priv(dev);
+
+	netif_napi_del(&tunnel->napi);
+	skb_queue_purge(&tunnel->napi_skbs);
 	free_percpu(dev->tstats);
 	free_netdev(dev);
 }
 
+#define GRE_FEATURES (NETIF_F_SG |		\
+		      NETIF_F_FRAGLIST |	\
+		      NETIF_F_HIGHDMA |		\
+		      NETIF_F_HW_CSUM)
+
 static void ipgre_tunnel_setup(struct net_device *dev)
 {
 	dev->netdev_ops		= &ipgre_netdev_ops;
@@ -1309,6 +1380,9 @@ static void ipgre_tunnel_setup(struct net_device *dev)
 	dev->addr_len		= 4;
 	dev->features		|= NETIF_F_NETNS_LOCAL;
 	dev->priv_flags		&= ~IFF_XMIT_DST_RELEASE;
+
+	dev->features		|= GRE_FEATURES;
+	dev->hw_features	|= GRE_FEATURES;
 }
 
 static int ipgre_tunnel_init(struct net_device *dev)
@@ -1340,7 +1414,9 @@ static int ipgre_tunnel_init(struct net_device *dev)
 	dev->tstats = alloc_percpu(struct pcpu_tstats);
 	if (!dev->tstats)
 		return -ENOMEM;
-
+	skb_queue_head_init(&tunnel->napi_skbs);
+	netif_napi_add(dev, &tunnel->napi, tunnel_napi_poll, 64);
+	napi_enable(&tunnel->napi);
 	return 0;
 }
 

^ permalink raw reply related

* Re: [PATCH] bnx2x: fix rx checksum validation for IPv6
From: Eilon Greenstein @ 2012-09-14 17:39 UTC (permalink / raw)
  To: Michal Schmidt, Eric Dumazet
  Cc: netdev, Eric Dumazet, Yaniv Rosner, Yuval Mintz, Merav Sicron,
	Robert Evans, Tom Herbert, Willem de Bruijn, David Miller,
	Havard Skinnemoen
In-Reply-To: <1347600028.23482.1.camel@lb-tlvb-eilong.il.broadcom.com>

On Fri, 2012-09-14 at 08:20 +0300, Eilon Greenstein wrote:
> On Fri, 2012-09-14 at 01:14 +0200, Eric Dumazet wrote:
> > On Fri, 2012-09-14 at 00:59 +0200, Michal Schmidt wrote:
> > > Commit d6cb3e41 "bnx2x: fix checksum validation" caused a performance
> > > regression for IPv6. Rx checksum offload does not work. IPv6 packets
> > > are passed to the stack with CHECKSUM_NONE.
> > > 
> > > The hardware obviously cannot perform IP checksum validation for IPv6,
> > > because there is no checksum in the IPv6 header. This should not prevent
> > > us from setting CHECKSUM_UNNECESSARY.
> > > 
> > > Tested on BCM57711.
> > > 
> > > Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
> > > ---
> > >  drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 12 +++++++-----
> > >  1 file changed, 7 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
> > > index af20c6e..e8e97a7 100644
> > > --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
> > > +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
> > > @@ -662,14 +662,16 @@ void bnx2x_csum_validate(struct sk_buff *skb, union eth_rx_cqe *cqe,
> > >  				 struct bnx2x_fastpath *fp,
> > >  				 struct bnx2x_eth_q_stats *qstats)
> > >  {
> > > -	/* Do nothing if no IP/L4 csum validation was done */
> > > -
> > > +	/* Do nothing if no L4 csum validation was done.
> > > +	 * We do not check whether IP csum was validated. For IPv4 we assume
> > > +	 * that if the card got as far as validating the L4 csum, it also
> > > +	 * validated the IP csum. IPv6 has no IP csum.
> > > +	 */
> > >  	if (cqe->fast_path_cqe.status_flags &
> > > -	    (ETH_FAST_PATH_RX_CQE_IP_XSUM_NO_VALIDATION_FLG |
> > > -	     ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG))
> > > +	    ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG)
> > >  		return;
> > >  
> > > -	/* If both IP/L4 validation were done, check if an error was found. */
> > > +	/* If L4 validation was done, check if an error was found. */
> > >  
> > >  	if (cqe->fast_path_cqe.type_error_flags &
> > >  	    (ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG |
> > 
> > Thanks for fixing this bug !
> > 
> > Acked-by: Eric Dumazet <edumazet@google.com>
> 
> Indeed - thanks Michal!
> 
> Acked-by: Eilon Greenstein <eilong@broadcom.com>
> 

Just in case someone will look up this thread in the future, I’m adding
some details: the comment is almost right, the HW does not verify the
IPv6 header in case it contains extension headers  this is why this
patch is required (though some users with IPv6 that does not use any
extension headers will not see the issue).

In other words: Eric  this is how we both missed it…

^ permalink raw reply

* Re: [PATCH net-next 2/2] gre: add GSO support
From: Maciej Żenczykowski @ 2012-09-14 17:12 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: David Miller, netdev
In-Reply-To: <1347607533.8555.269.camel@edumazet-glaptop>

Thanks!

So I'm guessing it should be easy to add support like this to IPIP and
SIT now as well
(not sure if they're missing, but I'd assume so)?

On Fri, Sep 14, 2012 at 12:25 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> From: Eric Dumazet <edumazet@google.com>
>
> Add GSO support to GRE tunnels.
>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Cc: Maciej Żenczykowski <maze@google.com>
> ---
>  net/ipv4/ip_gre.c |   12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
> index b062a98..f233c1d 100644
> --- a/net/ipv4/ip_gre.c
> +++ b/net/ipv4/ip_gre.c
> @@ -745,6 +745,10 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev
>         __be32 dst;
>         int    mtu;
>
> +       if (skb->ip_summed == CHECKSUM_PARTIAL &&
> +           skb_checksum_help(skb))
> +               goto tx_error;
> +
>         if (dev->type == ARPHRD_ETHER)
>                 IPCB(skb)->flags = 0;
>
> @@ -1296,6 +1300,11 @@ static void ipgre_dev_free(struct net_device *dev)
>         free_netdev(dev);
>  }
>
> +#define GRE_FEATURES (NETIF_F_SG |             \
> +                     NETIF_F_FRAGLIST |        \
> +                     NETIF_F_HIGHDMA |         \
> +                     NETIF_F_HW_CSUM)
> +
>  static void ipgre_tunnel_setup(struct net_device *dev)
>  {
>         dev->netdev_ops         = &ipgre_netdev_ops;
> @@ -1309,6 +1318,9 @@ static void ipgre_tunnel_setup(struct net_device *dev)
>         dev->addr_len           = 4;
>         dev->features           |= NETIF_F_NETNS_LOCAL;
>         dev->priv_flags         &= ~IFF_XMIT_DST_RELEASE;
> +
> +       dev->features           |= GRE_FEATURES;
> +       dev->hw_features        |= GRE_FEATURES;
>  }
>
>  static int ipgre_tunnel_init(struct net_device *dev)
>
>
>

^ permalink raw reply

* Re: [PATCH net-next 1/2] net: provide a default dev->ethtool_ops
From: Maciej Żenczykowski @ 2012-09-14 17:10 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: David Miller, netdev
In-Reply-To: <1347607441.8555.265.camel@edumazet-glaptop>

Any cleanups like this are always nice to see.

On Fri, Sep 14, 2012 at 12:24 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> From: Eric Dumazet <edumazet@google.com>
>
> Instead of forcing device drivers to provide empty ethtool_ops or tweak
> net/core/ethtool.c again, we could provide a generic ethtool_ops.
>
> This occurred to me when I wanted to add GSO support to GRE tunnels.
> ethtool -k support should be generic for all drivers.
>
> Signed-off-by: Eric Dumazet <edumazet@google.com>
> Cc: Maciej Żenczykowski <maze@google.com>
> ---
>  net/core/dev.c     |    5 +++
>  net/core/ethtool.c |   54 +++++++++++++++++--------------------------
>  2 files changed, 27 insertions(+), 32 deletions(-)
>
> diff --git a/net/core/dev.c b/net/core/dev.c
> index b1e6d63..ff8dcfc 100644
> --- a/net/core/dev.c
> +++ b/net/core/dev.c
> @@ -6045,6 +6045,11 @@ struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name,
>
>         strcpy(dev->name, name);
>         dev->group = INIT_NETDEV_GROUP;
> +       if (!dev->ethtool_ops) {
> +               static const struct ethtool_ops default_ethtool_ops;
> +
> +               dev->ethtool_ops = &default_ethtool_ops;
> +       }
>         return dev;
>
>  free_all:
> diff --git a/net/core/ethtool.c b/net/core/ethtool.c
> index cbf033d..aef0162 100644
> --- a/net/core/ethtool.c
> +++ b/net/core/ethtool.c
> @@ -175,7 +175,7 @@ static int __ethtool_get_sset_count(struct net_device *dev, int sset)
>         if (sset == ETH_SS_FEATURES)
>                 return ARRAY_SIZE(netdev_features_strings);
>
> -       if (ops && ops->get_sset_count && ops->get_strings)
> +       if (ops->get_sset_count && ops->get_strings)
>                 return ops->get_sset_count(dev, sset);
>         else
>                 return -EOPNOTSUPP;
> @@ -311,7 +311,7 @@ int __ethtool_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
>  {
>         ASSERT_RTNL();
>
> -       if (!dev->ethtool_ops || !dev->ethtool_ops->get_settings)
> +       if (!dev->ethtool_ops->get_settings)
>                 return -EOPNOTSUPP;
>
>         memset(cmd, 0, sizeof(struct ethtool_cmd));
> @@ -355,7 +355,7 @@ static noinline_for_stack int ethtool_get_drvinfo(struct net_device *dev,
>
>         memset(&info, 0, sizeof(info));
>         info.cmd = ETHTOOL_GDRVINFO;
> -       if (ops && ops->get_drvinfo) {
> +       if (ops->get_drvinfo) {
>                 ops->get_drvinfo(dev, &info);
>         } else if (dev->dev.parent && dev->dev.parent->driver) {
>                 strlcpy(info.bus_info, dev_name(dev->dev.parent),
> @@ -370,7 +370,7 @@ static noinline_for_stack int ethtool_get_drvinfo(struct net_device *dev,
>          * this method of obtaining string set info is deprecated;
>          * Use ETHTOOL_GSSET_INFO instead.
>          */
> -       if (ops && ops->get_sset_count) {
> +       if (ops->get_sset_count) {
>                 int rc;
>
>                 rc = ops->get_sset_count(dev, ETH_SS_TEST);
> @@ -383,9 +383,9 @@ static noinline_for_stack int ethtool_get_drvinfo(struct net_device *dev,
>                 if (rc >= 0)
>                         info.n_priv_flags = rc;
>         }
> -       if (ops && ops->get_regs_len)
> +       if (ops->get_regs_len)
>                 info.regdump_len = ops->get_regs_len(dev);
> -       if (ops && ops->get_eeprom_len)
> +       if (ops->get_eeprom_len)
>                 info.eedump_len = ops->get_eeprom_len(dev);
>
>         if (copy_to_user(useraddr, &info, sizeof(info)))
> @@ -1275,7 +1275,7 @@ static int ethtool_get_dump_flag(struct net_device *dev,
>         struct ethtool_dump dump;
>         const struct ethtool_ops *ops = dev->ethtool_ops;
>
> -       if (!dev->ethtool_ops->get_dump_flag)
> +       if (!ops->get_dump_flag)
>                 return -EOPNOTSUPP;
>
>         if (copy_from_user(&dump, useraddr, sizeof(dump)))
> @@ -1299,8 +1299,7 @@ static int ethtool_get_dump_data(struct net_device *dev,
>         const struct ethtool_ops *ops = dev->ethtool_ops;
>         void *data = NULL;
>
> -       if (!dev->ethtool_ops->get_dump_data ||
> -               !dev->ethtool_ops->get_dump_flag)
> +       if (!ops->get_dump_data || !ops->get_dump_flag)
>                 return -EOPNOTSUPP;
>
>         if (copy_from_user(&dump, useraddr, sizeof(dump)))
> @@ -1349,7 +1348,7 @@ static int ethtool_get_ts_info(struct net_device *dev, void __user *useraddr)
>
>                 err = phydev->drv->ts_info(phydev, &info);
>
> -       } else if (dev->ethtool_ops && dev->ethtool_ops->get_ts_info) {
> +       } else if (ops->get_ts_info) {
>
>                 err = ops->get_ts_info(dev, &info);
>
> @@ -1410,8 +1409,9 @@ static int ethtool_get_module_eeprom(struct net_device *dev,
>                                       modinfo.eeprom_len);
>  }
>
> -/* The main entry point in this file.  Called from net/core/dev.c */
> -
> +/* The main entry point in this file.  Called from net/core/dev.c
> + * with RTNL held.
> + */
>  int dev_ethtool(struct net *net, struct ifreq *ifr)
>  {
>         struct net_device *dev = __dev_get_by_name(net, ifr->ifr_name);
> @@ -1419,25 +1419,15 @@ int dev_ethtool(struct net *net, struct ifreq *ifr)
>         u32 ethcmd;
>         int rc;
>         u32 old_features;
> +       const struct ethtool_ops *ops;
>
>         if (!dev || !netif_device_present(dev))
>                 return -ENODEV;
>
> +       ops = dev->ethtool_ops;
>         if (copy_from_user(&ethcmd, useraddr, sizeof(ethcmd)))
>                 return -EFAULT;
>
> -       if (!dev->ethtool_ops) {
> -               /* A few commands do not require any driver support,
> -                * are unprivileged, and do not change anything, so we
> -                * can take a shortcut to them. */
> -               if (ethcmd == ETHTOOL_GDRVINFO)
> -                       return ethtool_get_drvinfo(dev, useraddr);
> -               else if (ethcmd == ETHTOOL_GET_TS_INFO)
> -                       return ethtool_get_ts_info(dev, useraddr);
> -               else
> -                       return -EOPNOTSUPP;
> -       }
> -
>         /* Allow some commands to be done by anyone */
>         switch (ethcmd) {
>         case ETHTOOL_GSET:
> @@ -1476,8 +1466,8 @@ int dev_ethtool(struct net *net, struct ifreq *ifr)
>                         return -EPERM;
>         }
>
> -       if (dev->ethtool_ops->begin) {
> -               rc = dev->ethtool_ops->begin(dev);
> +       if (ops->begin) {
> +               rc = ops->begin(dev);
>                 if (rc  < 0)
>                         return rc;
>         }
> @@ -1504,11 +1494,11 @@ int dev_ethtool(struct net *net, struct ifreq *ifr)
>                 break;
>         case ETHTOOL_GMSGLVL:
>                 rc = ethtool_get_value(dev, useraddr, ethcmd,
> -                                      dev->ethtool_ops->get_msglevel);
> +                                      ops->get_msglevel);
>                 break;
>         case ETHTOOL_SMSGLVL:
>                 rc = ethtool_set_value_void(dev, useraddr,
> -                                      dev->ethtool_ops->set_msglevel);
> +                                           ops->set_msglevel);
>                 break;
>         case ETHTOOL_GEEE:
>                 rc = ethtool_get_eee(dev, useraddr);
> @@ -1570,11 +1560,11 @@ int dev_ethtool(struct net *net, struct ifreq *ifr)
>                 break;
>         case ETHTOOL_GPFLAGS:
>                 rc = ethtool_get_value(dev, useraddr, ethcmd,
> -                                      dev->ethtool_ops->get_priv_flags);
> +                                      ops->get_priv_flags);
>                 break;
>         case ETHTOOL_SPFLAGS:
>                 rc = ethtool_set_value(dev, useraddr,
> -                                      dev->ethtool_ops->set_priv_flags);
> +                                      ops->set_priv_flags);
>                 break;
>         case ETHTOOL_GRXFH:
>         case ETHTOOL_GRXRINGS:
> @@ -1655,8 +1645,8 @@ int dev_ethtool(struct net *net, struct ifreq *ifr)
>                 rc = -EOPNOTSUPP;
>         }
>
> -       if (dev->ethtool_ops->complete)
> -               dev->ethtool_ops->complete(dev);
> +       if (ops->complete)
> +               ops->complete(dev);
>
>         if (old_features != dev->features)
>                 netdev_features_change(dev);
>
>

^ permalink raw reply

* Re: [PATCH] iproute2: bridge: finish removing replace option in man pages
From: Stephen Hemminger @ 2012-09-14 17:05 UTC (permalink / raw)
  To: John Fastabend; +Cc: netdev
In-Reply-To: <20120914065036.9063.86401.stgit@jf-dev1-dcblab>

On Thu, 13 Sep 2012 23:50:36 -0700
John Fastabend <john.r.fastabend@intel.com> wrote:

> This patch finishes removing the replace option from the bridge
> man page which I missed in this commit
> 
> commit 57b9785de32404da3d2ac5483469b7fcc5a9c9e7
> Author: John Fastabend <john.r.fastabend@intel.com>
> Date:   Mon Aug 27 10:52:31 2012 -0700
> 
>     iproute2: bridge: remove replace and change options
> 
> Also add documentation for "{ self | embedded }" already shown on
> the cmd line help msg.
> 

Applied, thanks

^ permalink raw reply

* [PATCH net] tcp: flush DMA queue before sk_wait_data if rcv_wnd is zero
From: Michal Kubecek @ 2012-09-14 14:59 UTC (permalink / raw)
  To: David S. Miller
  Cc: Alexey Kuznetsov, James Morris, Hideaki YOSHIFUJI,
	Patrick McHardy, netdev, mkubecek

If recv() syscall is called for a TCP socket so that
  - IOAT DMA is used
  - MSG_WAITALL flag is used
  - requested length is bigger than sk_rcvbuf
  - enough data has already arrived to bring rcv_wnd to zero
then when tcp_recvmsg() gets to calling sk_wait_data(), receive
window can be still zero while sk_async_wait_queue exhausts
enough space to keep it zero. As this queue isn't cleaned until
the tcp_service_net_dma() call, sk_wait_data() cannot receive
any data and blocks forever.

If zero receive window and non-empty sk_async_wait_queue is
detected before calling sk_wait_data(), process the queue first.

Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Cc: <stable@vger.kernel.org>
---
 net/ipv4/tcp.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 2109ff4..bf9a8ab 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1762,8 +1762,14 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
 		}
 
 #ifdef CONFIG_NET_DMA
-		if (tp->ucopy.dma_chan)
-			dma_async_memcpy_issue_pending(tp->ucopy.dma_chan);
+		if (tp->ucopy.dma_chan) {
+			if (tp->rcv_wnd == 0 &&
+			    !skb_queue_empty(&sk->sk_async_wait_queue)) {
+				tcp_service_net_dma(sk, true);
+				tcp_cleanup_rbuf(sk, copied);
+			} else
+				dma_async_memcpy_issue_pending(tp->ucopy.dma_chan);
+		}
 #endif
 		if (copied >= target) {
 			/* Do not sleep, just process backlog. */
-- 
1.7.10.4

^ permalink raw reply related

* RE: e1000e: Disabling IRQ #57 .. machine dies
From: Wyborny, Carolyn @ 2012-09-14 16:40 UTC (permalink / raw)
  To: Cristian Rodríguez, Netdev
In-Reply-To: <504F87F1.5040004@opensuse.org>

> -----Original Message-----
> From: netdev-owner@vger.kernel.org [mailto:netdev-owner@vger.kernel.org]
> On Behalf Of Cristian Rodríguez
> Sent: Tuesday, September 11, 2012 11:50 AM
> To: Netdev
> Subject: e1000e: Disabling IRQ #57 .. machine dies
> 
> Hi:
> 
> In current linus tree, in a machine using the e1000e driver
> 
> hwinfo --netcard
> 22: PCI 400.0: 0200 Ethernet controller
>   [Created at pci.319]
>   Unique ID: rBUF.cuT2KaC3ZS1
>   Parent ID: HnsE.Z52SDLRIaH2
>   SysFS ID: /devices/pci0000:00/0000:00:1c.5/0000:04:00.0
>   SysFS BusID: 0000:04:00.0
>   Hardware Class: network
>   Model: "Intel 82574L Gigabit Network Connection"
>   Vendor: pci 0x8086 "Intel Corporation"
>   Device: pci 0x10d3 "82574L Gigabit Network Connection"
>   SubVendor: pci 0x1043 "ASUSTeK Computer Inc."
>   SubDevice: pci 0x8369
>   Driver: "e1000e"
>   Driver Modules: "e1000e"
>   Device File: eth0
>   Memory Range: 0xf7d00000-0xf7d1ffff (rw,non-prefetchable)
>   I/O Ports: 0xd000-0xdfff (rw)
>   Memory Range: 0xf7d20000-0xf7d23fff (rw,non-prefetchable)
>   IRQ: 17 (no events)
>   Link detected: yes
>   Module Alias: "pci:v00008086d000010D3sv00001043sd00008369bc02sc00i00"
>   Driver Info #0:
>     Driver Status: e1000e is active
>     Driver Activation Cmd: "modprobe e1000e"
>   Config Status: cfg=no, avail=yes, need=no, active=unknown
>   Attached to: #15 (PCI bridge)
> 
> 
> 
> cat /proc/interrupts
> 
> 57 IR-PCI-MSI-edge      eth0
> 
> the driver works after a while, but then a single message
> 
> "Disabling IRQ #57"
> 

Hello,

I'm sorry you're having problems with out parts.  Can you provide some more info on this issue?  What version of the driver are you using?  Is the only problem that this driver dies or are there other symptoms?  What does the dmesg say for the e1000e driver at load?  It usually list whether its using MSI/MSI-X, and some other info.  Can you provide an lspci -vvv output for the 82574L device and the dmesg info?  Is the "Disabling IRQ #57 message appearing in the dmesg log or somewhere else?  Can you try loading the driver with the module parameter IntMode=0 to try the device in legacy interrupt mode, if its not already in that mode.

Thanks,

Carolyn

Carolyn Wyborny
Linux Development
LAN Access Division
Intel Corporation

^ permalink raw reply

* Re: interrupt coalescing and CSUM offload
From: Stephen Hemminger @ 2012-09-14 16:32 UTC (permalink / raw)
  To: Joakim Tjernlund; +Cc: netdev
In-Reply-To: <OF3E0CDC2E.8FFEBDC0-ONC1257A79.004A2EB6-C1257A79.00502122@transmode.se>

On Fri, 14 Sep 2012 16:35:13 +0200
Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:

> 
> I am adding interrupt coalescing to the ucc_geth driver. Unfortunately
> there is only support for RX interrupt coalescing.
> I wonder if there is any way "simulate" TX interrupt coalescing?
> 
> I am also looking at adding HWCSUM support but this device can only do
> IP header CSUM offload. This doesn't seem to be an option in Linux?
> As I understand it, one must do CSUM offload for the whole frame, both
> IP header and TCP/UDP csums?
> 
>  Jocke

There are a few drivers that turn off TX interrupt completely.
They cleanup TX buffers on next send and have a timer to cleanup
as well. This has performance benefits, but it does cause issues
with local flow control (the freeing of skb is used to rate
limit local traffic).

^ permalink raw reply

* [PATCH] netxen: check for root bus in netxen_mask_aer_correctable
From: nikolay @ 2012-09-14 15:50 UTC (permalink / raw)
  To: sony.chacko; +Cc: rajesh.borundia, netdev

From: Nikolay Aleksandrov <nikolay@redhat.com>

Add a check if pdev->bus->self == NULL (root bus). When attaching
a netxen NIC to a VM it can be on the root bus and the guest would
crash in netxen_mask_aer_correctable() because of a NULL pointer
dereference if CONFIG_PCIEAER is present.

Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
---
 drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
index 342b3a7..e2a4858 100644
--- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
+++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
@@ -1378,6 +1378,10 @@ static void netxen_mask_aer_correctable(struct netxen_adapter *adapter)
 	struct pci_dev *root = pdev->bus->self;
 	u32 aer_pos;
 
+	/* root bus? */
+	if (!root)
+		return;
+
 	if (adapter->ahw.board_type != NETXEN_BRDTYPE_P3_4_GB_MM &&
 		adapter->ahw.board_type != NETXEN_BRDTYPE_P3_10G_TP)
 		return;
-- 
1.7.11.4

^ permalink raw reply related

* Re: NULL deref in bnx2 / crashes ? ( was: netconsole leads to stalled CPU task )
From: Sylvain Munaut @ 2012-09-14 15:36 UTC (permalink / raw)
  To: Cong Wang; +Cc: Eric Dumazet, netdev
In-Reply-To: <50532FA1.3070706@gmail.com>

Hi,

> Anyway, I think Eric is right, the bug may be in other place. I am wondering
> if the attached patch could help? It seems in netpoll tx path, we miss the
> chance of calling ->ndo_select_queue().
>
> Please give it a try.

This fixes the NULL deref as well. I applied your patch over vanilla
3.6-rc5 (so without eric's patch) and I can load netconsole without it
crashing directly.

I will try to put a bit of load on the machine and see how it behaves,
if it solves the hung cpu tasks as well.

Cheers,

    Sylvain

^ permalink raw reply

* Re: [PATCH] cgroup: net_cls: Include missing header with sock_update_classid() definition
From: Daniel Wagner @ 2012-09-14 14:50 UTC (permalink / raw)
  To: sedat.dilek-Re5JQEeQqe8AvxtiuMwx3w
  Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-next-u79uwXL29TY76Z2rM5mHXA, Daniel Wagner, David S. Miller,
	Michael S. Tsirkin, Gao feng, Jamal Hadi Salim, Joe Perches,
	John Fastabend, Li Zefan, Neil Horman, Rick Jones,
	Stanislav Kinsbursky, Tejun Heo, netdev-u79uwXL29TY76Z2rM5mHXA,
	cgroups-u79uwXL29TY76Z2rM5mHXA, Stephen Rothwell
In-Reply-To: <CA+icZUUrdGgUM32r88EyRHEb3Q6bULqnk74PikQ8A9q25ZA3NA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

Hi Sedat,

On 14.09.2012 16:43, Sedat Dilek wrote:
> On Fri, Sep 14, 2012 at 4:33 PM, Daniel Wagner <wagi-kQCPcA+X3s7YtjvyW6yDsg@public.gmane.org> wrote:
>> From: Daniel Wagner <daniel.wagner-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org>
>>
>> commit 1f66c0a8833c3974ab6b35edcf4f8585b2f94592
>> Author: Daniel Wagner <daniel.wagner-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org>
>> Date:   Wed Sep 12 16:12:01 2012 +0200
>>
>>      cgroup: net_cls: Move sock_update_classid() declaration to cls_cgroup.h
>>
>> Claimed that there was only net/socket.c depending on
>> sock_update_class(). That is not true drivers/net/tun.c needs to
>> include the cls_cgroup.h header too.
>>
>> Signed-off-by: Daniel Wagner <daniel.wagner-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org>
>> Cc: "David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
>> Cc: "Michael S. Tsirkin" <mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>> Cc: Gao feng <gaofeng-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
>> Cc: Jamal Hadi Salim <jhs-jkUAjuhPggJWk0Htik3J/w@public.gmane.org>
>> Cc: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
>> Cc: John Fastabend <john.r.fastabend-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
>> Cc: Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
>> Cc: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
>> Cc: Rick Jones <rick.jones2-VXdhtT5mjnY@public.gmane.org>
>> Cc: Stanislav Kinsbursky <skinsbursky-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
>> Cc: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
>> Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> ---
>>
>> This version is on top of the latest cgroup for-3.7 branch.
>>
>
> Thanks for the quick fix.

No problem. I am still ashamed not finding it myself.

> Please honour Reported-by: Stephen Rothwell <sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org>.

Sure, will do next time.

> If this is the fix for the breakage in today's Linux-Next
> (next-20120914), please add a "-next" to the subject next time.

Correct, this one is for linux-next but I got the impression that cgroup 
for-3.7 branch was ignored because of this. Therefore I have send two 
versions. Hmm, I'll need to check the results of todays next tree.

thanks,
daniel

^ permalink raw reply

* Re: [PATCH] cgroup: net_cls: Include missing header with sock_update_classid() definition
From: Sedat Dilek @ 2012-09-14 14:43 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-next-u79uwXL29TY76Z2rM5mHXA, Daniel Wagner, David S. Miller,
	Michael S. Tsirkin, Gao feng, Jamal Hadi Salim, Joe Perches,
	John Fastabend, Li Zefan, Neil Horman, Rick Jones,
	Stanislav Kinsbursky, Tejun Heo, netdev-u79uwXL29TY76Z2rM5mHXA,
	cgroups-u79uwXL29TY76Z2rM5mHXA, Stephen Rothwell
In-Reply-To: <1347633184-26837-3-git-send-email-wagi-kQCPcA+X3s7YtjvyW6yDsg@public.gmane.org>

On Fri, Sep 14, 2012 at 4:33 PM, Daniel Wagner <wagi-kQCPcA+X3s7YtjvyW6yDsg@public.gmane.org> wrote:
> From: Daniel Wagner <daniel.wagner-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org>
>
> commit 1f66c0a8833c3974ab6b35edcf4f8585b2f94592
> Author: Daniel Wagner <daniel.wagner-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org>
> Date:   Wed Sep 12 16:12:01 2012 +0200
>
>     cgroup: net_cls: Move sock_update_classid() declaration to cls_cgroup.h
>
> Claimed that there was only net/socket.c depending on
> sock_update_class(). That is not true drivers/net/tun.c needs to
> include the cls_cgroup.h header too.
>
> Signed-off-by: Daniel Wagner <daniel.wagner-98C5kh4wR6ohFhg+JK9F0w@public.gmane.org>
> Cc: "David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>
> Cc: "Michael S. Tsirkin" <mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> Cc: Gao feng <gaofeng-BthXqXjhjHXQFUHtdCDX3A@public.gmane.org>
> Cc: Jamal Hadi Salim <jhs-jkUAjuhPggJWk0Htik3J/w@public.gmane.org>
> Cc: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public.gmane.org>
> Cc: John Fastabend <john.r.fastabend-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
> Cc: Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
> Cc: Neil Horman <nhorman-2XuSBdqkA4R54TAoqtyWWQ@public.gmane.org>
> Cc: Rick Jones <rick.jones2-VXdhtT5mjnY@public.gmane.org>
> Cc: Stanislav Kinsbursky <skinsbursky-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
> Cc: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> ---
>
> This version is on top of the latest cgroup for-3.7 branch.
>

Thanks for the quick fix.
Please honour Reported-by: Stephen Rothwell <sfr-3FnU+UHB4dNDw9hX6IcOSA@public.gmane.org>.
If this is the fix for the breakage in today's Linux-Next
(next-20120914), please add a "-next" to the subject next time.

- Sedat -

>  drivers/net/tun.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/tun.c b/drivers/net/tun.c
> index 3a16d4f..9336b82 100644
> --- a/drivers/net/tun.c
> +++ b/drivers/net/tun.c
> @@ -68,6 +68,7 @@
>  #include <net/netns/generic.h>
>  #include <net/rtnetlink.h>
>  #include <net/sock.h>
> +#include <net/cls_cgroup.h>
>
>  #include <asm/uaccess.h>
>
> --
> 1.7.12.315.g682ce8b
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-next" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* interrupt coalescing and CSUM offload
From: Joakim Tjernlund @ 2012-09-14 14:35 UTC (permalink / raw)
  To: netdev


I am adding interrupt coalescing to the ucc_geth driver. Unfortunately
there is only support for RX interrupt coalescing.
I wonder if there is any way "simulate" TX interrupt coalescing?

I am also looking at adding HWCSUM support but this device can only do
IP header CSUM offload. This doesn't seem to be an option in Linux?
As I understand it, one must do CSUM offload for the whole frame, both
IP header and TCP/UDP csums?

 Jocke

^ permalink raw reply

* [PATCH] cgroup: net_cls: Include missing header with sock_update_classid() definition
From: Daniel Wagner @ 2012-09-14 14:33 UTC (permalink / raw)
  To: linux-kernel, linux-next
  Cc: Daniel Wagner, David S. Miller, Michael S. Tsirkin, Gao feng,
	Jamal Hadi Salim, Joe Perches, John Fastabend, Li Zefan,
	Neil Horman, Rick Jones, Stanislav Kinsbursky, Tejun Heo, netdev,
	cgroups
In-Reply-To: <1347633184-26837-1-git-send-email-wagi@monom.org>

From: Daniel Wagner <daniel.wagner@bmw-carit.de>

commit 1f66c0a8833c3974ab6b35edcf4f8585b2f94592
Author: Daniel Wagner <daniel.wagner@bmw-carit.de>
Date:   Wed Sep 12 16:12:01 2012 +0200

    cgroup: net_cls: Move sock_update_classid() declaration to cls_cgroup.h

Claimed that there was only net/socket.c depending on
sock_update_class(). That is not true drivers/net/tun.c needs to
include the cls_cgroup.h header too.

Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Gao feng <gaofeng@cn.fujitsu.com>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: Joe Perches <joe@perches.com>
Cc: John Fastabend <john.r.fastabend@intel.com>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: Rick Jones <rick.jones2@hp.com>
Cc: Stanislav Kinsbursky <skinsbursky@parallels.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: netdev@vger.kernel.org
Cc: cgroups@vger.kernel.org
---

This version is on top of the latest cgroup for-3.7 branch.

 drivers/net/tun.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 3a16d4f..9336b82 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -68,6 +68,7 @@
 #include <net/netns/generic.h>
 #include <net/rtnetlink.h>
 #include <net/sock.h>
+#include <net/cls_cgroup.h>
 
 #include <asm/uaccess.h>
 
-- 
1.7.12.315.g682ce8b

^ permalink raw reply related

* [PATCH v6] cgroup: net_cls: Move sock_update_classid() declaration to cls_cgroup.h
From: Daniel Wagner @ 2012-09-14 14:33 UTC (permalink / raw)
  To: linux-kernel, linux-next
  Cc: Daniel Wagner, Gao feng, Jamal Hadi Salim, John Fastabend,
	Neil Horman, Stephen Rothwell, netdev, cgroups
In-Reply-To: <1347633184-26837-1-git-send-email-wagi@monom.org>

From: Daniel Wagner <daniel.wagner@bmw-carit.de>

The two users of sock_update_classid() are net/socket.c and
drivers/net/tun.c. socket.c includes cls_cgroup.h already. Update
tun.c to inlcude the header.

Signed-off-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
Acked-by: Tejun Heo <tj@kernel.org>
Acked-by: Li Zefan <lizefan@huawei.com>
Cc: Gao feng <gaofeng@cn.fujitsu.com>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: John Fastabend <john.r.fastabend@intel.com>
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: netdev@vger.kernel.org
Cc: cgroups@vger.kernel.org
---

This patch is an updated version of the faulty one. 

 drivers/net/tun.c        | 1 +
 include/net/cls_cgroup.h | 6 ++++++
 include/net/sock.h       | 8 --------
 3 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 3a16d4f..9336b82 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -68,6 +68,7 @@
 #include <net/netns/generic.h>
 #include <net/rtnetlink.h>
 #include <net/sock.h>
+#include <net/cls_cgroup.h>
 
 #include <asm/uaccess.h>
 
diff --git a/include/net/cls_cgroup.h b/include/net/cls_cgroup.h
index a4dc5b0..e88527a 100644
--- a/include/net/cls_cgroup.h
+++ b/include/net/cls_cgroup.h
@@ -24,6 +24,8 @@ struct cgroup_cls_state
 	u32 classid;
 };
 
+extern void sock_update_classid(struct sock *sk);
+
 #ifdef CONFIG_NET_CLS_CGROUP
 static inline u32 task_cls_classid(struct task_struct *p)
 {
@@ -62,6 +64,10 @@ static inline u32 task_cls_classid(struct task_struct *p)
 }
 #endif
 #else
+static inline void sock_update_classid(struct sock *sk)
+{
+}
+
 static inline u32 task_cls_classid(struct task_struct *p)
 {
 	return 0;
diff --git a/include/net/sock.h b/include/net/sock.h
index 72132ae..160a680 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -1486,14 +1486,6 @@ extern void *sock_kmalloc(struct sock *sk, int size,
 extern void sock_kfree_s(struct sock *sk, void *mem, int size);
 extern void sk_send_sigurg(struct sock *sk);
 
-#ifdef CONFIG_CGROUPS
-extern void sock_update_classid(struct sock *sk);
-#else
-static inline void sock_update_classid(struct sock *sk)
-{
-}
-#endif
-
 /*
  * Functions to fill in entries in struct proto_ops when a protocol
  * does not implement a particular function.
-- 
1.7.12.315.g682ce8b

^ permalink raw reply related

* [PATCH] Fix for "cgroup: Assign subsystem IDs during compile time"
From: Daniel Wagner @ 2012-09-14 14:33 UTC (permalink / raw)
  To: linux-kernel, linux-next
  Cc: Daniel Wagner, David S. Miller, Michael S. Tsirkin, Gao feng,
	Jamal Hadi Salim, Joe Perches, John Fastabend, Li Zefan,
	Neil Horman, Rick Jones, Stanislav Kinsbursky, Tejun Heo, netdev,
	cgroups

From: Daniel Wagner <daniel.wagner@bmw-carit.de>

Hi, 

Sorry for breaking Tejun's cgroup for-3.7 branch. Here are two patches
which fix this problem. Either of them will do. 

cheers,
daniel

Cc: "David S. Miller" <davem@davemloft.net>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Gao feng <gaofeng@cn.fujitsu.com>
Cc: Jamal Hadi Salim <jhs@mojatatu.com>
Cc: Joe Perches <joe@perches.com>
Cc: John Fastabend <john.r.fastabend@intel.com>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: Rick Jones <rick.jones2@hp.com>
Cc: Stanislav Kinsbursky <skinsbursky@parallels.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: netdev@vger.kernel.org
Cc: cgroups@vger.kernel.org

-- 
1.7.12.315.g682ce8b

^ permalink raw reply

* Re: [PATCH] Xen backend support for paged out grant targets.
From: Andres Lagar-Cavilla @ 2012-09-14 14:27 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk
  Cc: Ian Campbell, Andres Lagar-Cavilla, xen-devel@xen.lists.org,
	David Vrabel, David Miller, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org
In-Reply-To: <20120914124411.GB25249@phenom.dumpdata.com>


On Sep 14, 2012, at 8:44 AM, Konrad Rzeszutek Wilk wrote:

> On Fri, Sep 14, 2012 at 08:19:01AM +0100, Ian Campbell wrote:
>> On Thu, 2012-09-13 at 20:45 +0100, Andres Lagar-Cavilla wrote:
>>> On Sep 13, 2012, at 2:11 PM, Ian Campbell wrote:
>>> 
>>>> On Thu, 2012-09-13 at 18:28 +0100, Andres Lagar-Cavilla wrote:
>>>>> 
>>>>> * Add placeholder in array of grant table error descriptions for
>>>>> unrelated error code we jump over. 
>>>> 
>>>> Why not just define it, it's listed here:
>>>> http://xenbits.xen.org/docs/unstable/hypercall/include,public,grant_table.h.html#Enum_grant_status
>>> Well, a) we'd be defining something no one will be using (for the
>>> moment)
>> 
>> Even if no one in the kernel is using it, having "placeholder" as an
>> entry in GNTTABOP_error_msgs is just silly, even things which don't
>> understand GNTST_address_too_big directly could end up looking it up
>> here.
>> 
>>> b) I would be signing-off on something unrelated.
>> 
>> Lets take this patch instead then.
>> 
>> 8<------------------------------------------------
>> 
>>> From cb9daaf3029accb6d5fef58b450a625b27190429 Mon Sep 17 00:00:00 2001
>> From: Ian Campbell <ian.campbell@citrix.com>
>> Date: Fri, 14 Sep 2012 08:10:06 +0100
>> Subject: [PATCH] xen: resynchronise grant table status codes with upstream
>> 
>> Adds GNTST_address_too_big and GNTST_eagain.
>> 
>> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> 
> applied.
Thanks. Rebased on top of this and just sent.
Andres
> 
>> ---
>> include/xen/interface/grant_table.h |    8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>> 
>> diff --git a/include/xen/interface/grant_table.h b/include/xen/interface/grant_table.h
>> index a17d844..84a8fbf 100644
>> --- a/include/xen/interface/grant_table.h
>> +++ b/include/xen/interface/grant_table.h
>> @@ -519,7 +519,9 @@ DEFINE_GUEST_HANDLE_STRUCT(gnttab_get_version);
>> #define GNTST_no_device_space  (-7) /* Out of space in I/O MMU.              */
>> #define GNTST_permission_denied (-8) /* Not enough privilege for operation.  */
>> #define GNTST_bad_page         (-9) /* Specified page was invalid for op.    */
>> -#define GNTST_bad_copy_arg    (-10) /* copy arguments cross page boundary */
>> +#define GNTST_bad_copy_arg    (-10) /* copy arguments cross page boundary.   */
>> +#define GNTST_address_too_big (-11) /* transfer page address too large.      */
>> +#define GNTST_eagain          (-12) /* Operation not done; try again.        */
>> 
>> #define GNTTABOP_error_msgs {                   \
>>     "okay",                                     \
>> @@ -532,7 +534,9 @@ DEFINE_GUEST_HANDLE_STRUCT(gnttab_get_version);
>>     "no spare translation slot in the I/O MMU", \
>>     "permission denied",                        \
>>     "bad page",                                 \
>> -    "copy arguments cross page boundary"        \
>> +    "copy arguments cross page boundary",       \
>> +    "page address size too large",              \
>> +    "operation not done; try again"             \
>> }
>> 
>> #endif /* __XEN_PUBLIC_GRANT_TABLE_H__ */
>> -- 
>> 1.7.10.4
>> 
>> 

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox