Netdev List
 help / color / mirror / Atom feed
* Re: [net 0/4][pull request] Intel Wired LAN Driver Updates
From: David Miller @ 2012-03-28  7:04 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann
In-Reply-To: <1332917548-13102-1-git-send-email-jeffrey.t.kirsher@intel.com>

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 27 Mar 2012 23:52:24 -0700

> This series of patches contains fixes for e1000, igb, igbvf, ixgb,
> ixgbe and ixgbevf.
> 
> The following are changes since commit cc3425cdc04206f3c8b9efb2c693e89aa3cd9ec7:
>   Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

Pulled, thanks Jeff.

^ permalink raw reply

* Re: [PATCH] net/ethernet: ks8851_mll fix rx frame buffer overflow
From: Raffaele Recalcati @ 2012-03-28  7:05 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Davide Ciminaghi, David S. Miller, Alexey Dobriyan, Thomas Meyer,
	Wan ZongShun, Lucas De Marchi, netdev
In-Reply-To: <1332859171.10620.0.camel@edumazet-laptop>

Hi Eric,

On 07:39 Tue 27 Mar     , Eric Dumazet wrote:
> Le mardi 27 mars 2012 à 15:01 +0200, Davide Ciminaghi a écrit :
> > If interrupts are disabled long enough to allow for more than
> > 32 frames to accumulate in the MAC's internal buffers, a buffer
> > overflow occurs. This patch fixes the problem by making the
> > driver's frame_head_info buffer bigger enough.
> > 
> > Signed-off-by: Davide Ciminaghi <ciminaghi@gnudd.com>
> > Signed-off-by: Raffaele Recalcati <raffaele.recalcati@bticino.it>
> > ---
> >  drivers/net/ethernet/micrel/ks8851_mll.c |    2 +-
> >  1 files changed, 1 insertions(+), 1 deletions(-)
> > 
> > diff --git a/drivers/net/ethernet/micrel/ks8851_mll.c b/drivers/net/ethernet/micrel/ks8851_mll.c
> > index 2784bc7..a158e89 100644
> > --- a/drivers/net/ethernet/micrel/ks8851_mll.c
> > +++ b/drivers/net/ethernet/micrel/ks8851_mll.c
> > @@ -40,7 +40,7 @@
> >  #define	DRV_NAME	"ks8851_mll"
> >  
> >  static u8 KS_DEFAULT_MAC_ADDRESS[] = { 0x00, 0x10, 0xA1, 0x86, 0x95, 0x11 };
> > -#define MAX_RECV_FRAMES			32
> > +#define MAX_RECV_FRAMES			256
> >  #define MAX_BUF_SIZE			2048
> >  #define TX_BUF_SIZE			2000
> >  #define RX_BUF_SIZE			2000
> 
> How can this fix the problem for good ?

You can see in ks_rcv function, 
ks->frame_cnt = ks_rdreg16(ks, KS_RXFCTR) >> 8;
so "RXFC RX Frame Count" is a byte, maximum 256 total frames.
but we have the threshold ..

As you can see also in ks_setup the 
/* Setup Receive Frame Threshold - 1 frame (RXFCTFC) */
ks_wrreg16(ks, KS_RXFCTR, 1 & RXFCTR_THRESHOLD_MASK);

In conclusion what happen is that if we stop system interrupts for a while,
when we are back the ks_rcv function starts reading the frames, and 
the 
while (ks->frame_cnt--) {
..
	frame_hdr++;
}
loop goes out of the malloc'ed area.

We experienced so strange bugs in the last weeks that we are so happy that it seems fixed, but I need
some weeks to confirm it is robust enough.
The 'load setup' is like the following:
- nfs rootfs
- host $ sudo ping -f $TARGET_IP_ADDRESS
- host $ scp -r BIG_DIR user@$TARGET_IP_ADDRESS:
But I'm not sure to create the bug in a mathematical way, it seems to depend on packets on the corporate lan.

Surely if I stop with jtag and restart after some seconds I have buffer overflow, with same errors in ram that I
obtain randomically with 'load setup'.

Hoping it helps,

Raffaele

> 
> 
> 

Ce message, ainsi que tous les fichiers joints à ce message,
peuvent contenir des informations sensibles et/ ou confidentielles
ne devant pas être divulguées. Si vous n'êtes pas le destinataire
de ce message (ou que vous recevez ce message par erreur), nous
vous remercions de le notifier immédiatement à son expéditeur, et
de détruire ce message. Toute copie, divulgation, modification,
utilisation ou diffusion, non autorisée, directe ou indirecte, de
tout ou partie de ce message, est strictement interdite.

This e-mail, and any document attached hereby, may contain
confidential and/or privileged information. If you are not the
intended recipient (or have received this e-mail in error) please
notify the sender immediately and destroy this e-mail. Any
unauthorized, direct or indirect, copying, disclosure, distribution
or other use of the material or parts thereof is strictly
forbidden.

^ permalink raw reply

* Re: [PATCH] net/ethernet: ks8851_mll fix rx frame buffer overflow
From: David Miller @ 2012-03-28  7:12 UTC (permalink / raw)
  To: raffaele.recalcati
  Cc: eric.dumazet, ciminaghi, adobriyan, thomas, mcuos.com,
	lucas.demarchi, netdev
In-Reply-To: <20120328070540.GA4892@recalcati>

From: Raffaele Recalcati <raffaele.recalcati@bticino.it>
Date: Wed, 28 Mar 2012 09:05:40 +0200

> This e-mail, and any document attached hereby, may contain
> confidential and/or privileged information.

Please do not include confidentiality notices on a public
mailing list.

^ permalink raw reply

* Re: compat-wireless releases based on v3.3
From: Richard Farina @ 2012-03-28  7:19 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-wireless,
	linux-bluetooth, netdev-u79uwXL29TY76Z2rM5mHXA,
	lf_driver_backport-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
In-Reply-To: <CAB=NE6WgTMdDtU4_ZgYVr2XzSuiicT5o=q2RvV24jeQj0rZfFw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On 03/28/12 02:41, Luis R. Rodriguez wrote:
> Linux v3.3 is out, so we make kernel backport releases based on this
> release to allow you to compile subsystems / drivers from this kernel
> on older kernels. One kernel backport release is based on v3.3 vanilla
> [0], and another which cherry picks 14 patches from linux-next.git
> [1]. The linux-next-cherry-picks patches are just one of the type of
> extra categories of patches which the projects allows, for more
> details refer to the additional patches page [2]. For details on the
> changes that went into the kernel for the subsystem / drivers we
> include in this release please refer to the ChangeLog [3]. Details to
> compat and compat-wireless are provided below.
>
> Worth mentioning is we now have a documentation page for the compat
> module alone [4]. I've also dumped into a Google Fusion Table kernel
> backport statistics [5] which we can use to keep metrics across
> different releases. If anyone is interested in helping with these
> stats or creating visualizations please let me know, for now anyone
> can view the content. I'm still working on the columns, it seems there
> a few bugs still with Fusion Table but the prospects of using it are
> very nice. In particular I hope it can help organizations keep track
> of deltas not upstream, help categorize clearly and keep metrics of
> what is not even posted but needed (we call this crap), etc. There are
> also slides available now [6] that will be used to for the Linux
> Collaboration Summit talk on Automatically backporting the Linux
> kernel [7]. Hope the new set of documentation helps understand this
> process a little better.
-1 compiles perfectly for me
> The 14 cherry picked patches:
>
> mcgrof@tux ~/devel/compat-wireless (git::linux-3.3.y)$ ls -1
> linux-next-cherry-picks/
> 0001-mac80211-Fix-incorrect-num_sta_ps-decrement-in-__sta.patch
> 0002-mac80211-Fix-incorrect-num_sta_ps-decrement-in-ap_st.patch
> 0003-mac80211-Move-num_sta_ps-counter-decrement-after-syn.patch
> 0004-ath9k-Initialize-NF-values-properly.patch
> 0005-ath9k-Fix-programming-SYNTH4-for-AR9462.patch
> 0006-ath9k-Fix-descriptor-length-for-AR9462.patch
> 0007-mac80211-handle-non-bufferable-MMPDUs-correctly.patch
> 0008-Revert-ath9k_hw-Fix-false-tx-hung-detection-in-AR900.patch
> 0009-ath9k-do-not-call-ath9k_hw_txprocdesc-on-AR9003-outs.patch
> 0010-ath9k_hw-enable-interrupts-for-beacon-tx-completion-.patch
> 0011-ath9k-fix-drv_tx_last_beacon-on-AR9003-by-processing.patch
> 0012-ath9k_hw-use-cold-instead-of-warm-reset-on-AR9280.patch
> 0013-mac80211-add-an-rx-flag-for-ignoring-a-packet-s-sign.patch
> 0014-ath9k-fix-signal-strength-reporting-issues.patch
>
Something goes wrong with 1-n:

make -j1 KLIB_BUILD=/lib/modules/3.2.2-pentoo/build
./scripts/gen-compat-autoconf.sh config.mk > include/linux/compat_autoconf.h
make -C /lib/modules/3.2.2-pentoo/build
M=/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n
modules
make[1]: Entering directory `/usr/src/linux-3.2.2-pentoo'
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/compat/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/compat/main.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/compat/compat.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bcma/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bcma/main.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bcma/scan.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bcma/core.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bcma/sprom.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bcma/driver_chipcommon.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bcma/driver_chipcommon_pmu.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bcma/driver_pci.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bcma/host_pci.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bcma/bcma.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/hci_vhci.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/btmrvl_main.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/btmrvl_debugfs.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/hci_ldisc.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/hci_h4.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/hci_bcsp.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/hci_ll.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/hci_ath.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/hci_uart.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/bcm203x.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/bpa10x.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/bfusb.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/dtl1_cs.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/bt3c_cs.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/bluecard_cs.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/btuart_cs.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/btusb.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/btsdio.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/ath3k.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/btmrvl.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/btmrvl_sdio.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/bluetooth/btwilink.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/misc/eeprom/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/misc/eeprom/eeprom_93cx6.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/built-in.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atl1c/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atl1c/atl1c_main.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atl1c/atl1c_hw.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atl1c/atl1c_ethtool.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atl1c/atl1c.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atl1e/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atl1e/atl1e_main.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atl1e/atl1e_hw.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atl1e/atl1e_ethtool.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atl1e/atl1e_param.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atl1e/atl1e.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atlx/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atlx/atl1.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/atheros/atlx/atl2.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/broadcom/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/broadcom/b44.o
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/ethernet/broadcom/b44.c:13:0:
warning: "pr_fmt" redefined
include/linux/printk.h:152:0: note: this is the location of the previous
definition
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/usb/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/usb/cdc_ether.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/usb/rndis_host.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/usb/usbnet.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/main.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/regd.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/hw.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/key.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/caps.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/initvals.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/eeprom.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/gpio.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/desc.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/dma.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/qcu.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/pcu.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/phy.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/reset.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/attach.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/base.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/led.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/rfkill.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/ani.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/sysfs.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/mac80211-ops.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/pci.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath5k/ath5k.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/debug.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/hif.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/htc.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/bmi.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/cfg80211.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/init.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/main.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/txrx.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/wmi.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/sdio.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath6kl/ath6kl.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/beacon.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/gpio.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/init.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/main.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/recv.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/xmit.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/mci.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/rc.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/pci.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ahb.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/common.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/htc_hst.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/hif_usb.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/wmi.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/htc_drv_txrx.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/htc_drv_main.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/htc_drv_beacon.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/htc_drv_init.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/htc_drv_gpio.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9002_hw.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9003_hw.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/hw.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9003_phy.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9002_phy.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar5008_phy.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9002_calib.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9003_calib.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9003_rtt.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/calib.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/eeprom.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/eeprom_def.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/eeprom_4k.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/eeprom_9287.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ani.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/btcoex.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/mac.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9002_mac.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9003_mac.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9003_eeprom.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9003_paprd.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ar9003_mci.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ath9k.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ath9k_hw.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ath9k_common.o
  LD [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/ath9k/ath9k_htc.o
  LD     
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/built-in.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/main.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/usb.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/cmd.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/mac.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/phy.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/led.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/fw.o
  CC [M] 
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/tx.o
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/tx.c:
In function 'carl9170_tx_ps_drop':
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/tx.c:1248:26:
error: 'IEEE80211_TX_CTL_POLL_RESPONSE' undeclared (first use in this
function)
/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/tx.c:1248:26:
note: each undeclared identifier is reported only once for each function
it appears in
make[5]: ***
[/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/tx.o]
Error 1
make[4]: ***
[/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170]
Error 2
make[3]: ***
[/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath]
Error 2
make[2]: ***
[/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless]
Error 2
make[1]: ***
[_module_/var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n]
Error 2
make[1]: Leaving directory `/usr/src/linux-3.2.2-pentoo'
make: *** [modules] Error 2

thanks!

-Rick
> ===============================================
> ChangeLog for compat-wireless for linux-3.3
> ===============================================
>
> This is the ChangeLog for the Linux kernel project compat-wireless.
> It provides a backport of a few Linux kernel subsystems down to
> older kernels:
>
>   * 802.11
>   * Bluetooth
>   * Ethernet
>
> For more details refer to the home page:
>
> http://wireless.kernel.org/en/users/Download/stable/
>
> The compat-wireless project consists of code from three projects:
>
>   * The Linux kernel: linux-2.6-allstable.git
>   * Compat-wirelesS: compat-wireless.git
>   * Compat: compat.git
>
> The compat-wireless stable releases incorporates code from from
> each of these git trees for the respective upstream Linux kernel
> stable release. A branch called linux-3.x.y exists for each
> stable release. Below we provide the ChangeLog of changes from
> the previous branched release to the new branched release.
>
> Release: linux-3.3
>
> Updates from the compat.git project:
> ====================================
>
> git shortlog linux-3.2.y..linux-3.3.y
>
> Felix Fietkau (3):
>       compat: fix misplaced #ifdef for the workqueue backport
>       compat: backport atomic64 support
>       compat: fix security_sk_clone dummy backport compile
>
> Hauke Mehrtens (6):
>       compat: add support for kernel 3.2
>       compat: backport kfree_rcu()
>       compat: backport netdev_features_t
>       compat: add config var for CORDIC and CRC8
>       compat: add module_usb_driver and module_platform_driver
>       compat: add __cancel_delayed_work()
>
> John W. Linville (7):
>       compat: use separate CONFIG_COMPAT_KFIFO option for building kfifo.o
>       compat: add CONFIG_COMPAT_FIRMWARE_DATA_RW_NEEDS_FILP
>       compat: check CONFIG_COMPAT_FIRMWARE_CLASS in compat-2.6.33.h
>       compat: support RHEL6 as a build target
>       compat: avoid warning in compat_system_workqueue_create
>       compat: implement dummy security_sk_clone
>       compat: use kconfig.h in compat-2.6.h for 3.1 and later kernels
>
> Luis R. Rodriguez (4):
>       compat: fix building for 3.0 kernels
>       compat: export compat kernel versions info
>       compat: add .gitignore
>       compat: add compat kernel checker and downloader
>
> Nikolay Martynov (1):
>       Add dma_zalloc_coherent to fix build with kernels older than 3.2
>
> Updates from the compat-wireless.git project:
> =============================================
>
> git shortlog linux-3.2.y..linux-3.3.y
>
> Dominique Martinet (1):
>       compat-wireless: build: Throw error if space in path
>
> Eliad Peller (1):
>       compat-wireless: fix patches/08-rename-config-options.patch
>
> Hauke Mehrtens (17):
>       compat-wireless: add support for kernel 3.2
>       compat-wireless: remove kfree_rcu() patch
>       compat-wireless: make patches apply again
>       compat-wireless: make patches apply again
>       compat-wireless: escape &
>       compat-wireless: add config var for CORDIC and CRC8
>       compat-wireless: remove some modules from Makefile
>       compat-wireless: fix driver-select for intel
>       compat-wireless: add some missing config options
>       compat-wireless: fix brcm80211 driver-select
>       compat-wireless deactivate mac80211 tracing for old kernels
>       compat-wireless: compile fix for commit patches/09-threaded-irq.patch
>       compat-wireless: remove platform_device_id for kernel < 2.6.30
>       compat-wireless: CONFIG_BT_L2CAP and CONFIG_BT_SCO removed
>       compat-wireless: make patches apply again
>       compat-wireless: use other workqueue
>       compat-wireless: no trans_start on netdev_queue
>
> Johannes Berg (1):
>       compat-wireless: disable SKB TX status stamping in mac80211
>
> John W. Linville (9):
>       compat-wireless: add CONFIG_COMPAT_KFIFO setting to config.mk
>       compat-wireless: remove leading whitespace from
> CONFIG_COMPAT_FIRMWARE_CLASS
>       compat-wireless: add CONFIG_COMPAT_BT_SOCK_CREATE_NEEDS_KERN
>       compat-wireless: support RHEL6 as a build target
>       compat-wireless: change CONFIG_IWLAGN -> CONFIG_IWLWIFI
>       compat-wireless: fix patches/11-dev-pm-ops.patch
>       compat-wireless: fix patches/38-led-max-brightness.patch
>       compat-wireless: fix patches/39-remove_blink_set.patch
>       Enable CONFIG_RT2800{PCI,USB}_RT53XX
>
> Luciano Coelho (1):
>       compat-wireless: check if modprobe exists before using it
>
> Luis R. Rodriguez (22):
>       compat-wireless: fix patches/08-rename-config-options.patch
>       compat-wireless: refresh patches
>       compat-wireless: refresh patches
>       compat-wireless: fix patches/09-threaded-irq.patch
>       compat-wireless: refresh patches
>       compat-wireless: copy driver files only if present
>       compat-wireless: clarify patches/47-no_trans_start_on_netdev_queue.patch
>       compat-wireless: clarify patches/46-use_other_workqueue.patch
>       compat-wireless: refresh patches
>       compat-wireless: refresh patches for next-20120109
>       compat-wirless: refresh patches
>       compat-wireless: refresh patches for 3.3-rc1
>       compat-wireless: use linux-stable instead of linux-2.6-allstable
>       compat-wireless: fix patches/16-bluetooth.patch
>       compat-wireless: refresh patches
>       compat-wireless: add driver-select option ath9k_ap
>       compat-wireless: fix allowing jobserver
>       compat-wireless: add linux-next-cherry-picks for 3.3 recommended by nbd
>       compat-wireless: refresh linux-next-cherry-picks patches
>       compat-wireless: remove ath9k packet log crap
>       compat-wireless: remove stale pending-stable ignore patch
>       compat-wireless: refresh patches for v3.0 release
>
> [0] http://www.orbit-lab.org/kernel/compat-wireless-3-stable/v3.3/compat-wireless-3.3-1.tar.bz2
> [1] http://www.orbit-lab.org/kernel/compat-wireless-3-stable/v3.3/compat-wireless-3.3-1-n.tar.bz2
> [2] http://wireless.kernel.org/en/users/Download/stable/#Additional_patches_to_stable_releases
> [3] http://www.orbit-lab.org/kernel/compat-wireless-3-stable/v3.3/ChangeLog-3.3-wireless
> [4] http://mcgrof.github.com/compat/
> [5] https://www.google.com/fusiontables/DataSource?docid=1wXnm0VFUHBpaMmxwjaZZD58B4o8K1iPFCCOx50Q
> [6] https://docs.google.com/presentation/d/1axVNEGwKZjnzG1ocdd289WMqPxzJ3qfMv70ghGcnUKc/edit
> [7] https://events.linuxfoundation.org/events/collaboration-summit/rodriguez-backporting
>
>   Luis
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" 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

* Foreign Partnership Quest!
From: 先生 KI SANG JUNG @ 2012-03-28  7:15 UTC (permalink / raw)





Good day Friend,
I find it pleasurable to solicit your assistance and honesty to move an
investment profit funds worth USD$98.6M from my Bank to your bank. I wish
to seek your consent before sending more details, this a genuine and I
hope it this will be appeal to you.
Email me : jkis13355@yahoo.com.hk

Thanks!
Ki Sang J.

^ permalink raw reply

* Re: [PATCH] tcp: remove useless update for flag parameter in tcp_enter_frto_loss()
From: Eric Dumazet @ 2012-03-28  7:34 UTC (permalink / raw)
  To: Li Yu; +Cc: Neal Cardwell, netdev
In-Reply-To: <4F72B589.5060903@gmail.com>

On Wed, 2012-03-28 at 14:54 +0800, Li Yu wrote:

> Sorry for spent time on this, it it account for F-RTO retransmitted
> segment here.

I dont believe its waste of time having several eyes on this code.

Thanks

^ permalink raw reply

* Re: [PATCH] net/ethernet: ks8851_mll fix rx frame buffer overflow
From: Eric Dumazet @ 2012-03-28  7:39 UTC (permalink / raw)
  To: Raffaele Recalcati
  Cc: Davide Ciminaghi, David S. Miller, Alexey Dobriyan, Thomas Meyer,
	Wan ZongShun, Lucas De Marchi, netdev
In-Reply-To: <20120328070540.GA4892@recalcati>

On Wed, 2012-03-28 at 09:05 +0200, Raffaele Recalcati wrote:
> Hi Eric,
> 
> On 07:39 Tue 27 Mar     , Eric Dumazet wrote:
> > Le mardi 27 mars 2012 à 15:01 +0200, Davide Ciminaghi a écrit :
> > > If interrupts are disabled long enough to allow for more than
> > > 32 frames to accumulate in the MAC's internal buffers, a buffer
> > > overflow occurs. This patch fixes the problem by making the
> > > driver's frame_head_info buffer bigger enough.
> > > 
> > > Signed-off-by: Davide Ciminaghi <ciminaghi@gnudd.com>
> > > Signed-off-by: Raffaele Recalcati <raffaele.recalcati@bticino.it>
> > > ---
> > >  drivers/net/ethernet/micrel/ks8851_mll.c |    2 +-
> > >  1 files changed, 1 insertions(+), 1 deletions(-)
> > > 
> > > diff --git a/drivers/net/ethernet/micrel/ks8851_mll.c b/drivers/net/ethernet/micrel/ks8851_mll.c
> > > index 2784bc7..a158e89 100644
> > > --- a/drivers/net/ethernet/micrel/ks8851_mll.c
> > > +++ b/drivers/net/ethernet/micrel/ks8851_mll.c
> > > @@ -40,7 +40,7 @@
> > >  #define	DRV_NAME	"ks8851_mll"
> > >  
> > >  static u8 KS_DEFAULT_MAC_ADDRESS[] = { 0x00, 0x10, 0xA1, 0x86, 0x95, 0x11 };
> > > -#define MAX_RECV_FRAMES			32
> > > +#define MAX_RECV_FRAMES			256
> > >  #define MAX_BUF_SIZE			2048
> > >  #define TX_BUF_SIZE			2000
> > >  #define RX_BUF_SIZE			2000
> > 
> > How can this fix the problem for good ?
> 
> You can see in ks_rcv function, 
> ks->frame_cnt = ks_rdreg16(ks, KS_RXFCTR) >> 8;
> so "RXFC RX Frame Count" is a byte, maximum 256 total frames.
> but we have the threshold ..
> 
> As you can see also in ks_setup the 
> /* Setup Receive Frame Threshold - 1 frame (RXFCTFC) */
> ks_wrreg16(ks, KS_RXFCTR, 1 & RXFCTR_THRESHOLD_MASK);
> 
> In conclusion what happen is that if we stop system interrupts for a while,
> when we are back the ks_rcv function starts reading the frames, and 
> the 
> while (ks->frame_cnt--) {
> ..
> 	frame_hdr++;
> }
> loop goes out of the malloc'ed area.
> 
> We experienced so strange bugs in the last weeks that we are so happy that it seems fixed, but I need
> some weeks to confirm it is robust enough.
> The 'load setup' is like the following:
> - nfs rootfs
> - host $ sudo ping -f $TARGET_IP_ADDRESS
> - host $ scp -r BIG_DIR user@$TARGET_IP_ADDRESS:
> But I'm not sure to create the bug in a mathematical way, it seems to depend on packets on the corporate lan.
> 
> Surely if I stop with jtag and restart after some seconds I have buffer overflow, with same errors in ram that I
> obtain randomically with 'load setup'.
> 
> Hoping it helps,

Sure it does.

So the limit should be 255, not 256.
(0xFFFF >> 8 -> 0xFF)

ks->frame_cnt = ks_rdreg16(ks, KS_RXFCTR) >> 8;

I cant see how 256 can be stored in a 8bit field ?

You see, explaining things in Changelog can actually help a lot, since
we now understand chip has this 8bit limit for the frame counter.

Thanks

^ permalink raw reply

* Re: compat-wireless releases based on v3.3
From: Luis R. Rodriguez @ 2012-03-28  7:43 UTC (permalink / raw)
  To: Richard Farina
  Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-wireless,
	linux-bluetooth, netdev-u79uwXL29TY76Z2rM5mHXA,
	lf_driver_backport-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
In-Reply-To: <4F72BB7F.8080704-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

On Wed, Mar 28, 2012 at 12:19 AM, Richard Farina <sidhayn-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> /var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/tx.c:
> In function 'carl9170_tx_ps_drop':
> /var/tmp/portage/net-wireless/compat-wireless-3.3/work/compat-wireless-3.3-1-n/drivers/net/wireless/ath/carl9170/tx.c:1248:26:
> error: 'IEEE80211_TX_CTL_POLL_RESPONSE' undeclared (first use in this
> function)

linux-next-cherry-picks/0007-mac80211-handle-non-bufferable-MMPDUs-correctly.patch

is to be blamed for. This is fixed, new tarball:

http://www.orbit-lab.org/kernel/compat-wireless-3-stable/v3.3/compat-wireless-3.3-2-n.tar.bz2
sha1sum: dd18cfabbe705a75440fd7fbe50a09d5fe34bb70

Thanks for reporting this. Just FYI -- I am working to use ckmake on
compat-wireless.git to build test against all supported kernels prior
to release just as I am doing now for compat.git, but the current
development cycle still a few items which require a bit of work to
backport to fix compilation against older kernels. That is the goal
though, so that future releases area always guaranteed to compile
against all supported stable kernel releases listed on kernel.org.

  Luis

^ permalink raw reply

* [PATCH 1/3] Fix non TBI PHY access; a bad merge undid bug fix in a previous commit.
From: Kenth Eriksson @ 2012-03-28  8:05 UTC (permalink / raw)
  To: netdev; +Cc: Kenth Eriksson

Commit b26e478f undid bug fix in commit c3e072f8, with the result that non TBI (e.g. MDIO) PHYs cannot be accessed.

Signed-off-by: Kenth Eriksson <kenth.eriksson@transmode.com>
---
 drivers/net/ethernet/freescale/fsl_pq_mdio.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/freescale/fsl_pq_mdio.c b/drivers/net/ethernet/freescale/fsl_pq_mdio.c
index 9eb8159..f7f0bf5 100644
--- a/drivers/net/ethernet/freescale/fsl_pq_mdio.c
+++ b/drivers/net/ethernet/freescale/fsl_pq_mdio.c
@@ -356,13 +356,13 @@ static int fsl_pq_mdio_probe(struct platform_device *ofdev)
 
 		if (prop)
 			tbiaddr = *prop;
-	}
 
-	if (tbiaddr == -1) {
-		err = -EBUSY;
-		goto err_free_irqs;
-	} else {
-		out_be32(tbipa, tbiaddr);
+		if (tbiaddr == -1) {
+			err = -EBUSY;
+			goto err_free_irqs;
+		} else {
+			out_be32(tbipa, tbiaddr);
+		}
 	}
 
 	err = of_mdiobus_register(new_bus, np);
-- 
1.7.3.4

^ permalink raw reply related

* [PATCH net-next v2 1/5] r8169: modify pll power function
From: Hayes Wang @ 2012-03-28  8:26 UTC (permalink / raw)
  To: romieu; +Cc: netdev, linux-kernel, Hayes Wang

Adjust r810x_pll_power_down, r810x_pll_power_up, and r8168_pll_power_up.
Always power up device during rtl_open. For r810x, turn off more power
when the WOL is disabled.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
---
 drivers/net/ethernet/realtek/r8169.c |   37 +++++++++++++++++++++++++++------
 1 files changed, 30 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 27c358c..3edb996 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -3508,15 +3508,45 @@ static void r810x_phy_power_up(struct rtl8169_private *tp)
 
 static void r810x_pll_power_down(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
+
 	if (rtl_wol_pll_power_down(tp))
 		return;
 
 	r810x_phy_power_down(tp);
+
+	switch (tp->mac_version) {
+	case RTL_GIGA_MAC_VER_07:
+	case RTL_GIGA_MAC_VER_08:
+	case RTL_GIGA_MAC_VER_09:
+	case RTL_GIGA_MAC_VER_10:
+	case RTL_GIGA_MAC_VER_13:
+	case RTL_GIGA_MAC_VER_16:
+		break;
+	default:
+		RTL_W8(PMCH, RTL_R8(PMCH) & ~0x80);
+		break;
+	}
 }
 
 static void r810x_pll_power_up(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
+
 	r810x_phy_power_up(tp);
+
+	switch (tp->mac_version) {
+	case RTL_GIGA_MAC_VER_07:
+	case RTL_GIGA_MAC_VER_08:
+	case RTL_GIGA_MAC_VER_09:
+	case RTL_GIGA_MAC_VER_10:
+	case RTL_GIGA_MAC_VER_13:
+	case RTL_GIGA_MAC_VER_16:
+		break;
+	default:
+		RTL_W8(PMCH, RTL_R8(PMCH) | 0x80);
+		break;
+	}
 }
 
 static void r8168_phy_power_up(struct rtl8169_private *tp)
@@ -3620,13 +3650,6 @@ static void r8168_pll_power_up(struct rtl8169_private *tp)
 {
 	void __iomem *ioaddr = tp->mmio_addr;
 
-	if ((tp->mac_version == RTL_GIGA_MAC_VER_27 ||
-	     tp->mac_version == RTL_GIGA_MAC_VER_28 ||
-	     tp->mac_version == RTL_GIGA_MAC_VER_31) &&
-	    r8168dp_check_dash(tp)) {
-		return;
-	}
-
 	switch (tp->mac_version) {
 	case RTL_GIGA_MAC_VER_25:
 	case RTL_GIGA_MAC_VER_26:
-- 
1.7.7.6

^ permalink raw reply related

* [PATCH net-next v2 2/5] r8169: add csi_opt
From: Hayes Wang @ 2012-03-28  8:26 UTC (permalink / raw)
  To: romieu; +Cc: netdev, linux-kernel, Hayes Wang
In-Reply-To: <1332923214-5071-1-git-send-email-hayeswang@realtek.com>

Modify the CSI relative functions by using csi_opt method.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
---
 drivers/net/ethernet/realtek/r8169.c |  300 ++++++++++++++++++++++------------
 1 files changed, 194 insertions(+), 106 deletions(-)

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 3edb996..268ed51 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -717,6 +717,11 @@ struct rtl8169_private {
 		void (*disable)(struct rtl8169_private *);
 	} jumbo_ops;
 
+	struct csi_ops {
+		void (*write)(void __iomem *, int, int);
+		u32 (*read)(void __iomem *, int);
+	} csi_ops;
+
 	int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv);
 	int (*get_settings)(struct net_device *, struct ethtool_cmd *);
 	void (*phy_reset_enable)(struct rtl8169_private *tp);
@@ -1079,40 +1084,6 @@ static u16 rtl_ephy_read(void __iomem *ioaddr, int reg_addr)
 	return value;
 }
 
-static void rtl_csi_write(void __iomem *ioaddr, int addr, int value)
-{
-	unsigned int i;
-
-	RTL_W32(CSIDR, value);
-	RTL_W32(CSIAR, CSIAR_WRITE_CMD | (addr & CSIAR_ADDR_MASK) |
-		CSIAR_BYTE_ENABLE << CSIAR_BYTE_ENABLE_SHIFT);
-
-	for (i = 0; i < 100; i++) {
-		if (!(RTL_R32(CSIAR) & CSIAR_FLAG))
-			break;
-		udelay(10);
-	}
-}
-
-static u32 rtl_csi_read(void __iomem *ioaddr, int addr)
-{
-	u32 value = ~0x00;
-	unsigned int i;
-
-	RTL_W32(CSIAR, (addr & CSIAR_ADDR_MASK) |
-		CSIAR_BYTE_ENABLE << CSIAR_BYTE_ENABLE_SHIFT);
-
-	for (i = 0; i < 100; i++) {
-		if (RTL_R32(CSIAR) & CSIAR_FLAG) {
-			value = RTL_R32(CSIDR);
-			break;
-		}
-		udelay(10);
-	}
-
-	return value;
-}
-
 static
 void rtl_eri_write(void __iomem *ioaddr, int addr, u32 mask, u32 val, int type)
 {
@@ -4209,22 +4180,100 @@ static void rtl_hw_start_8169(struct net_device *dev)
 	RTL_W16(MultiIntr, RTL_R16(MultiIntr) & 0xF000);
 }
 
-static void rtl_csi_access_enable(void __iomem *ioaddr, u32 bits)
+static void rtl_csi_write(struct rtl8169_private *tp, int addr, int value)
+{
+	if (tp->csi_ops.write)
+		tp->csi_ops.write(tp->mmio_addr, addr, value);
+}
+
+static u32 rtl_csi_read(struct rtl8169_private *tp, int addr)
+{
+	if (tp->csi_ops.read)
+		return tp->csi_ops.read(tp->mmio_addr, addr);
+	else
+		return ~0;
+}
+
+static void rtl_csi_access_enable(struct rtl8169_private *tp, u32 bits)
 {
 	u32 csi;
 
-	csi = rtl_csi_read(ioaddr, 0x070c) & 0x00ffffff;
-	rtl_csi_write(ioaddr, 0x070c, csi | bits);
+	csi = rtl_csi_read(tp, 0x070c) & 0x00ffffff;
+	rtl_csi_write(tp, 0x070c, csi | bits);
+}
+
+static void rtl_csi_access_enable_1(struct rtl8169_private *tp)
+{
+	rtl_csi_access_enable(tp, 0x17000000);
 }
 
-static void rtl_csi_access_enable_1(void __iomem *ioaddr)
+static void rtl_csi_access_enable_2(struct rtl8169_private *tp)
 {
-	rtl_csi_access_enable(ioaddr, 0x17000000);
+	rtl_csi_access_enable(tp, 0x27000000);
 }
 
-static void rtl_csi_access_enable_2(void __iomem *ioaddr)
+static void r8169_csi_write(void __iomem *ioaddr, int addr, int value)
 {
-	rtl_csi_access_enable(ioaddr, 0x27000000);
+	unsigned int i;
+
+	RTL_W32(CSIDR, value);
+	RTL_W32(CSIAR, CSIAR_WRITE_CMD | (addr & CSIAR_ADDR_MASK) |
+		CSIAR_BYTE_ENABLE << CSIAR_BYTE_ENABLE_SHIFT);
+
+	for (i = 0; i < 100; i++) {
+		if (!(RTL_R32(CSIAR) & CSIAR_FLAG))
+			break;
+		udelay(10);
+	}
+}
+
+static u32 r8169_csi_read(void __iomem *ioaddr, int addr)
+{
+	u32 value = ~0x00;
+	unsigned int i;
+
+	RTL_W32(CSIAR, (addr & CSIAR_ADDR_MASK) |
+		CSIAR_BYTE_ENABLE << CSIAR_BYTE_ENABLE_SHIFT);
+
+	for (i = 0; i < 100; i++) {
+		if (RTL_R32(CSIAR) & CSIAR_FLAG) {
+			value = RTL_R32(CSIDR);
+			break;
+		}
+		udelay(10);
+	}
+
+	return value;
+}
+
+static void __devinit rtl_init_csi_ops(struct rtl8169_private *tp)
+{
+	struct csi_ops *ops = &tp->csi_ops;
+
+	switch (tp->mac_version) {
+	case RTL_GIGA_MAC_VER_01:
+	case RTL_GIGA_MAC_VER_02:
+	case RTL_GIGA_MAC_VER_03:
+	case RTL_GIGA_MAC_VER_04:
+	case RTL_GIGA_MAC_VER_05:
+	case RTL_GIGA_MAC_VER_06:
+	case RTL_GIGA_MAC_VER_10:
+	case RTL_GIGA_MAC_VER_11:
+	case RTL_GIGA_MAC_VER_12:
+	case RTL_GIGA_MAC_VER_13:
+	case RTL_GIGA_MAC_VER_14:
+	case RTL_GIGA_MAC_VER_15:
+	case RTL_GIGA_MAC_VER_16:
+	case RTL_GIGA_MAC_VER_17:
+		ops->write	= NULL;
+		ops->read	= NULL;
+		break;
+
+	default:
+		ops->write	= r8169_csi_write;
+		ops->read	= r8169_csi_read;
+		break;
+	}
 }
 
 struct ephy_info {
@@ -4281,8 +4330,11 @@ static void rtl_enable_clock_request(struct pci_dev *pdev)
 	PktCntrDisable | \
 	Mac_dbgo_sel)
 
-static void rtl_hw_start_8168bb(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168bb(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
+
 	RTL_W8(Config3, RTL_R8(Config3) & ~Beacon_en);
 
 	RTL_W16(CPlusCmd, RTL_R16(CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK);
@@ -4291,17 +4343,22 @@ static void rtl_hw_start_8168bb(void __iomem *ioaddr, struct pci_dev *pdev)
 		(0x5 << MAX_READ_REQUEST_SHIFT) | PCI_EXP_DEVCTL_NOSNOOP_EN);
 }
 
-static void rtl_hw_start_8168bef(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168bef(struct rtl8169_private *tp)
 {
-	rtl_hw_start_8168bb(ioaddr, pdev);
+	void __iomem *ioaddr = tp->mmio_addr;
+
+	rtl_hw_start_8168bb(tp);
 
 	RTL_W8(MaxTxPacketSize, TxPacketMax);
 
 	RTL_W8(Config4, RTL_R8(Config4) & ~(1 << 0));
 }
 
-static void __rtl_hw_start_8168cp(void __iomem *ioaddr, struct pci_dev *pdev)
+static void __rtl_hw_start_8168cp(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
+
 	RTL_W8(Config1, RTL_R8(Config1) | Speed_down);
 
 	RTL_W8(Config3, RTL_R8(Config3) & ~Beacon_en);
@@ -4313,8 +4370,9 @@ static void __rtl_hw_start_8168cp(void __iomem *ioaddr, struct pci_dev *pdev)
 	RTL_W16(CPlusCmd, RTL_R16(CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK);
 }
 
-static void rtl_hw_start_8168cp_1(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168cp_1(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
 	static const struct ephy_info e_info_8168cp[] = {
 		{ 0x01, 0,	0x0001 },
 		{ 0x02, 0x0800,	0x1000 },
@@ -4323,16 +4381,19 @@ static void rtl_hw_start_8168cp_1(void __iomem *ioaddr, struct pci_dev *pdev)
 		{ 0x07, 0,	0x2000 }
 	};
 
-	rtl_csi_access_enable_2(ioaddr);
+	rtl_csi_access_enable_2(tp);
 
 	rtl_ephy_init(ioaddr, e_info_8168cp, ARRAY_SIZE(e_info_8168cp));
 
-	__rtl_hw_start_8168cp(ioaddr, pdev);
+	__rtl_hw_start_8168cp(tp);
 }
 
-static void rtl_hw_start_8168cp_2(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168cp_2(struct rtl8169_private *tp)
 {
-	rtl_csi_access_enable_2(ioaddr);
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
+
+	rtl_csi_access_enable_2(tp);
 
 	RTL_W8(Config3, RTL_R8(Config3) & ~Beacon_en);
 
@@ -4341,9 +4402,12 @@ static void rtl_hw_start_8168cp_2(void __iomem *ioaddr, struct pci_dev *pdev)
 	RTL_W16(CPlusCmd, RTL_R16(CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK);
 }
 
-static void rtl_hw_start_8168cp_3(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168cp_3(struct rtl8169_private *tp)
 {
-	rtl_csi_access_enable_2(ioaddr);
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
+
+	rtl_csi_access_enable_2(tp);
 
 	RTL_W8(Config3, RTL_R8(Config3) & ~Beacon_en);
 
@@ -4357,52 +4421,57 @@ static void rtl_hw_start_8168cp_3(void __iomem *ioaddr, struct pci_dev *pdev)
 	RTL_W16(CPlusCmd, RTL_R16(CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK);
 }
 
-static void rtl_hw_start_8168c_1(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168c_1(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
 	static const struct ephy_info e_info_8168c_1[] = {
 		{ 0x02, 0x0800,	0x1000 },
 		{ 0x03, 0,	0x0002 },
 		{ 0x06, 0x0080,	0x0000 }
 	};
 
-	rtl_csi_access_enable_2(ioaddr);
+	rtl_csi_access_enable_2(tp);
 
 	RTL_W8(DBG_REG, 0x06 | FIX_NAK_1 | FIX_NAK_2);
 
 	rtl_ephy_init(ioaddr, e_info_8168c_1, ARRAY_SIZE(e_info_8168c_1));
 
-	__rtl_hw_start_8168cp(ioaddr, pdev);
+	__rtl_hw_start_8168cp(tp);
 }
 
-static void rtl_hw_start_8168c_2(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168c_2(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
 	static const struct ephy_info e_info_8168c_2[] = {
 		{ 0x01, 0,	0x0001 },
 		{ 0x03, 0x0400,	0x0220 }
 	};
 
-	rtl_csi_access_enable_2(ioaddr);
+	rtl_csi_access_enable_2(tp);
 
 	rtl_ephy_init(ioaddr, e_info_8168c_2, ARRAY_SIZE(e_info_8168c_2));
 
-	__rtl_hw_start_8168cp(ioaddr, pdev);
+	__rtl_hw_start_8168cp(tp);
 }
 
-static void rtl_hw_start_8168c_3(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168c_3(struct rtl8169_private *tp)
 {
-	rtl_hw_start_8168c_2(ioaddr, pdev);
+	rtl_hw_start_8168c_2(tp);
 }
 
-static void rtl_hw_start_8168c_4(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168c_4(struct rtl8169_private *tp)
 {
-	rtl_csi_access_enable_2(ioaddr);
+	rtl_csi_access_enable_2(tp);
 
-	__rtl_hw_start_8168cp(ioaddr, pdev);
+	__rtl_hw_start_8168cp(tp);
 }
 
-static void rtl_hw_start_8168d(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168d(struct rtl8169_private *tp)
 {
-	rtl_csi_access_enable_2(ioaddr);
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
+
+	rtl_csi_access_enable_2(tp);
 
 	rtl_disable_clock_request(pdev);
 
@@ -4413,9 +4482,12 @@ static void rtl_hw_start_8168d(void __iomem *ioaddr, struct pci_dev *pdev)
 	RTL_W16(CPlusCmd, RTL_R16(CPlusCmd) & ~R8168_CPCMD_QUIRK_MASK);
 }
 
-static void rtl_hw_start_8168dp(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168dp(struct rtl8169_private *tp)
 {
-	rtl_csi_access_enable_1(ioaddr);
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
+
+	rtl_csi_access_enable_1(tp);
 
 	rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT);
 
@@ -4424,8 +4496,10 @@ static void rtl_hw_start_8168dp(void __iomem *ioaddr, struct pci_dev *pdev)
 	rtl_disable_clock_request(pdev);
 }
 
-static void rtl_hw_start_8168d_4(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168d_4(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
 	static const struct ephy_info e_info_8168d_4[] = {
 		{ 0x0b, ~0,	0x48 },
 		{ 0x19, 0x20,	0x50 },
@@ -4433,7 +4507,7 @@ static void rtl_hw_start_8168d_4(void __iomem *ioaddr, struct pci_dev *pdev)
 	};
 	int i;
 
-	rtl_csi_access_enable_1(ioaddr);
+	rtl_csi_access_enable_1(tp);
 
 	rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT);
 
@@ -4450,8 +4524,10 @@ static void rtl_hw_start_8168d_4(void __iomem *ioaddr, struct pci_dev *pdev)
 	rtl_enable_clock_request(pdev);
 }
 
-static void rtl_hw_start_8168e_1(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168e_1(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
 	static const struct ephy_info e_info_8168e_1[] = {
 		{ 0x00, 0x0200,	0x0100 },
 		{ 0x00, 0x0000,	0x0004 },
@@ -4468,7 +4544,7 @@ static void rtl_hw_start_8168e_1(void __iomem *ioaddr, struct pci_dev *pdev)
 		{ 0x0a, 0x0000,	0x0040 }
 	};
 
-	rtl_csi_access_enable_2(ioaddr);
+	rtl_csi_access_enable_2(tp);
 
 	rtl_ephy_init(ioaddr, e_info_8168e_1, ARRAY_SIZE(e_info_8168e_1));
 
@@ -4485,14 +4561,16 @@ static void rtl_hw_start_8168e_1(void __iomem *ioaddr, struct pci_dev *pdev)
 	RTL_W8(Config5, RTL_R8(Config5) & ~Spi_en);
 }
 
-static void rtl_hw_start_8168e_2(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168e_2(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
 	static const struct ephy_info e_info_8168e_2[] = {
 		{ 0x09, 0x0000,	0x0080 },
 		{ 0x19, 0x0000,	0x0224 }
 	};
 
-	rtl_csi_access_enable_1(ioaddr);
+	rtl_csi_access_enable_1(tp);
 
 	rtl_ephy_init(ioaddr, e_info_8168e_2, ARRAY_SIZE(e_info_8168e_2));
 
@@ -4523,8 +4601,10 @@ static void rtl_hw_start_8168e_2(void __iomem *ioaddr, struct pci_dev *pdev)
 	RTL_W8(Config5, RTL_R8(Config5) & ~Spi_en);
 }
 
-static void rtl_hw_start_8168f_1(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8168f_1(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
 	static const struct ephy_info e_info_8168f_1[] = {
 		{ 0x06, 0x00c0,	0x0020 },
 		{ 0x08, 0x0001,	0x0002 },
@@ -4532,7 +4612,7 @@ static void rtl_hw_start_8168f_1(void __iomem *ioaddr, struct pci_dev *pdev)
 		{ 0x19, 0x0000,	0x0224 }
 	};
 
-	rtl_csi_access_enable_1(ioaddr);
+	rtl_csi_access_enable_1(tp);
 
 	rtl_ephy_init(ioaddr, e_info_8168f_1, ARRAY_SIZE(e_info_8168f_1));
 
@@ -4570,7 +4650,6 @@ static void rtl_hw_start_8168(struct net_device *dev)
 {
 	struct rtl8169_private *tp = netdev_priv(dev);
 	void __iomem *ioaddr = tp->mmio_addr;
-	struct pci_dev *pdev = tp->pci_dev;
 
 	RTL_W8(Cfg9346, Cfg9346_Unlock);
 
@@ -4601,67 +4680,67 @@ static void rtl_hw_start_8168(struct net_device *dev)
 
 	switch (tp->mac_version) {
 	case RTL_GIGA_MAC_VER_11:
-		rtl_hw_start_8168bb(ioaddr, pdev);
+		rtl_hw_start_8168bb(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_12:
 	case RTL_GIGA_MAC_VER_17:
-		rtl_hw_start_8168bef(ioaddr, pdev);
+		rtl_hw_start_8168bef(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_18:
-		rtl_hw_start_8168cp_1(ioaddr, pdev);
+		rtl_hw_start_8168cp_1(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_19:
-		rtl_hw_start_8168c_1(ioaddr, pdev);
+		rtl_hw_start_8168c_1(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_20:
-		rtl_hw_start_8168c_2(ioaddr, pdev);
+		rtl_hw_start_8168c_2(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_21:
-		rtl_hw_start_8168c_3(ioaddr, pdev);
+		rtl_hw_start_8168c_3(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_22:
-		rtl_hw_start_8168c_4(ioaddr, pdev);
+		rtl_hw_start_8168c_4(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_23:
-		rtl_hw_start_8168cp_2(ioaddr, pdev);
+		rtl_hw_start_8168cp_2(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_24:
-		rtl_hw_start_8168cp_3(ioaddr, pdev);
+		rtl_hw_start_8168cp_3(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_25:
 	case RTL_GIGA_MAC_VER_26:
 	case RTL_GIGA_MAC_VER_27:
-		rtl_hw_start_8168d(ioaddr, pdev);
+		rtl_hw_start_8168d(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_28:
-		rtl_hw_start_8168d_4(ioaddr, pdev);
+		rtl_hw_start_8168d_4(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_31:
-		rtl_hw_start_8168dp(ioaddr, pdev);
+		rtl_hw_start_8168dp(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_32:
 	case RTL_GIGA_MAC_VER_33:
-		rtl_hw_start_8168e_1(ioaddr, pdev);
+		rtl_hw_start_8168e_1(tp);
 		break;
 	case RTL_GIGA_MAC_VER_34:
-		rtl_hw_start_8168e_2(ioaddr, pdev);
+		rtl_hw_start_8168e_2(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_35:
 	case RTL_GIGA_MAC_VER_36:
-		rtl_hw_start_8168f_1(ioaddr, pdev);
+		rtl_hw_start_8168f_1(tp);
 		break;
 
 	default:
@@ -4688,8 +4767,10 @@ static void rtl_hw_start_8168(struct net_device *dev)
 	PktCntrDisable | \
 	Mac_dbgo_sel)
 
-static void rtl_hw_start_8102e_1(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8102e_1(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
 	static const struct ephy_info e_info_8102e_1[] = {
 		{ 0x01,	0, 0x6e65 },
 		{ 0x02,	0, 0x091f },
@@ -4702,7 +4783,7 @@ static void rtl_hw_start_8102e_1(void __iomem *ioaddr, struct pci_dev *pdev)
 	};
 	u8 cfg1;
 
-	rtl_csi_access_enable_2(ioaddr);
+	rtl_csi_access_enable_2(tp);
 
 	RTL_W8(DBG_REG, FIX_NAK_1);
 
@@ -4719,9 +4800,12 @@ static void rtl_hw_start_8102e_1(void __iomem *ioaddr, struct pci_dev *pdev)
 	rtl_ephy_init(ioaddr, e_info_8102e_1, ARRAY_SIZE(e_info_8102e_1));
 }
 
-static void rtl_hw_start_8102e_2(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8102e_2(struct rtl8169_private *tp)
 {
-	rtl_csi_access_enable_2(ioaddr);
+	void __iomem *ioaddr = tp->mmio_addr;
+	struct pci_dev *pdev = tp->pci_dev;
+
+	rtl_csi_access_enable_2(tp);
 
 	rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT);
 
@@ -4729,15 +4813,16 @@ static void rtl_hw_start_8102e_2(void __iomem *ioaddr, struct pci_dev *pdev)
 	RTL_W8(Config3, RTL_R8(Config3) & ~Beacon_en);
 }
 
-static void rtl_hw_start_8102e_3(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8102e_3(struct rtl8169_private *tp)
 {
-	rtl_hw_start_8102e_2(ioaddr, pdev);
+	rtl_hw_start_8102e_2(tp);
 
-	rtl_ephy_write(ioaddr, 0x03, 0xc2f9);
+	rtl_ephy_write(tp->mmio_addr, 0x03, 0xc2f9);
 }
 
-static void rtl_hw_start_8105e_1(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8105e_1(struct rtl8169_private *tp)
 {
+	void __iomem *ioaddr = tp->mmio_addr;
 	static const struct ephy_info e_info_8105e_1[] = {
 		{ 0x07,	0, 0x4000 },
 		{ 0x19,	0, 0x0200 },
@@ -4761,9 +4846,11 @@ static void rtl_hw_start_8105e_1(void __iomem *ioaddr, struct pci_dev *pdev)
 	rtl_ephy_init(ioaddr, e_info_8105e_1, ARRAY_SIZE(e_info_8105e_1));
 }
 
-static void rtl_hw_start_8105e_2(void __iomem *ioaddr, struct pci_dev *pdev)
+static void rtl_hw_start_8105e_2(struct rtl8169_private *tp)
 {
-	rtl_hw_start_8105e_1(ioaddr, pdev);
+	void __iomem *ioaddr = tp->mmio_addr;
+
+	rtl_hw_start_8105e_1(tp);
 	rtl_ephy_write(ioaddr, 0x1e, rtl_ephy_read(ioaddr, 0x1e) | 0x8000);
 }
 
@@ -4790,22 +4877,22 @@ static void rtl_hw_start_8101(struct net_device *dev)
 
 	switch (tp->mac_version) {
 	case RTL_GIGA_MAC_VER_07:
-		rtl_hw_start_8102e_1(ioaddr, pdev);
+		rtl_hw_start_8102e_1(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_08:
-		rtl_hw_start_8102e_3(ioaddr, pdev);
+		rtl_hw_start_8102e_3(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_09:
-		rtl_hw_start_8102e_2(ioaddr, pdev);
+		rtl_hw_start_8102e_2(tp);
 		break;
 
 	case RTL_GIGA_MAC_VER_29:
-		rtl_hw_start_8105e_1(ioaddr, pdev);
+		rtl_hw_start_8105e_1(tp);
 		break;
 	case RTL_GIGA_MAC_VER_30:
-		rtl_hw_start_8105e_2(ioaddr, pdev);
+		rtl_hw_start_8105e_2(tp);
 		break;
 	}
 
@@ -6199,6 +6286,7 @@ rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
 	rtl_init_mdio_ops(tp);
 	rtl_init_pll_power_ops(tp);
 	rtl_init_jumbo_ops(tp);
+	rtl_init_csi_ops(tp);
 
 	rtl8169_print_mac_version(tp);
 
-- 
1.7.7.6

^ permalink raw reply related

* [PATCH net-next v2 3/5] r8169: support RTL8402
From: Hayes Wang @ 2012-03-28  8:26 UTC (permalink / raw)
  To: romieu; +Cc: netdev, linux-kernel, Hayes Wang
In-Reply-To: <1332923214-5071-1-git-send-email-hayeswang@realtek.com>

Support the new chip RTL8402.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
---
 drivers/net/ethernet/realtek/r8169.c |  122 +++++++++++++++++++++++++++++++++-
 1 files changed, 121 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 268ed51..aa23a25 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -45,6 +45,7 @@
 #define FIRMWARE_8168F_1	"rtl_nic/rtl8168f-1.fw"
 #define FIRMWARE_8168F_2	"rtl_nic/rtl8168f-2.fw"
 #define FIRMWARE_8105E_1	"rtl_nic/rtl8105e-1.fw"
+#define FIRMWARE_8402_1		"rtl_nic/rtl8402-1.fw"
 
 #ifdef RTL8169_DEBUG
 #define assert(expr) \
@@ -134,6 +135,7 @@ enum mac_version {
 	RTL_GIGA_MAC_VER_34,
 	RTL_GIGA_MAC_VER_35,
 	RTL_GIGA_MAC_VER_36,
+	RTL_GIGA_MAC_VER_37,
 	RTL_GIGA_MAC_NONE   = 0xff,
 };
 
@@ -246,6 +248,9 @@ static const struct {
 	[RTL_GIGA_MAC_VER_36] =
 		_R("RTL8168f/8111f",	RTL_TD_1, FIRMWARE_8168F_2,
 							JUMBO_9K, false),
+	[RTL_GIGA_MAC_VER_37] =
+		_R("RTL8402",		RTL_TD_1, FIRMWARE_8402_1,
+							JUMBO_1K, true)
 };
 #undef _R
 
@@ -356,6 +361,9 @@ enum rtl8168_8101_registers {
 #define	CSIAR_BYTE_ENABLE		0x0f
 #define	CSIAR_BYTE_ENABLE_SHIFT		12
 #define	CSIAR_ADDR_MASK			0x0fff
+#define CSIAR_FUNC_CARD			0x00000000
+#define CSIAR_FUNC_SDIO			0x00010000
+#define CSIAR_FUNC_NIC			0x00020000
 	PMCH			= 0x6f,
 	EPHYAR			= 0x80,
 #define	EPHYAR_FLAG			0x80000000
@@ -774,6 +782,7 @@ MODULE_FIRMWARE(FIRMWARE_8168E_3);
 MODULE_FIRMWARE(FIRMWARE_8105E_1);
 MODULE_FIRMWARE(FIRMWARE_8168F_1);
 MODULE_FIRMWARE(FIRMWARE_8168F_2);
+MODULE_FIRMWARE(FIRMWARE_8402_1);
 
 static void rtl_lock_work(struct rtl8169_private *tp)
 {
@@ -1288,6 +1297,16 @@ static void rtl_link_chg_patch(struct rtl8169_private *tp)
 			rtl_eri_write(ioaddr, 0x1dc, ERIAR_MASK_1111,
 				      0x0000003f, ERIAR_EXGMAC);
 		}
+	} else if (tp->mac_version == RTL_GIGA_MAC_VER_37) {
+		if (RTL_R8(PHYstatus) & _10bps) {
+			rtl_eri_write(ioaddr, 0x1d0, ERIAR_MASK_0011,
+				      0x4d02, ERIAR_EXGMAC);
+			rtl_eri_write(ioaddr, 0x1dc, ERIAR_MASK_0011,
+				      0x0060, ERIAR_EXGMAC);
+		} else {
+			rtl_eri_write(ioaddr, 0x1d0, ERIAR_MASK_0011,
+				      0x0000, ERIAR_EXGMAC);
+		}
 	}
 }
 
@@ -1885,6 +1904,7 @@ static void rtl8169_get_mac_version(struct rtl8169_private *tp,
 		{ 0x7c800000, 0x30000000,	RTL_GIGA_MAC_VER_11 },
 
 		/* 8101 family. */
+		{ 0x7c800000, 0x44000000,	RTL_GIGA_MAC_VER_37 },
 		{ 0x7cf00000, 0x40b00000,	RTL_GIGA_MAC_VER_30 },
 		{ 0x7cf00000, 0x40a00000,	RTL_GIGA_MAC_VER_30 },
 		{ 0x7cf00000, 0x40900000,	RTL_GIGA_MAC_VER_29 },
@@ -3119,6 +3139,25 @@ static void rtl8105e_hw_phy_config(struct rtl8169_private *tp)
 	rtl_writephy_batch(tp, phy_reg_init, ARRAY_SIZE(phy_reg_init));
 }
 
+static void rtl8402_hw_phy_config(struct rtl8169_private *tp)
+{
+	void __iomem *ioaddr = tp->mmio_addr;
+
+	/* Disable ALDPS before setting firmware */
+	rtl_writephy(tp, 0x1f, 0x0000);
+	rtl_writephy(tp, 0x18, 0x0310);
+	msleep(20);
+
+	rtl_apply_firmware(tp);
+
+	/* EEE setting */
+	rtl_eri_write(ioaddr, 0x1b0, ERIAR_MASK_0011, 0x0000, ERIAR_EXGMAC);
+	rtl_writephy(tp, 0x1f, 0x0004);
+	rtl_writephy(tp, 0x10, 0x401f);
+	rtl_writephy(tp, 0x19, 0x7030);
+	rtl_writephy(tp, 0x1f, 0x0000);
+}
+
 static void rtl_hw_phy_config(struct net_device *dev)
 {
 	struct rtl8169_private *tp = netdev_priv(dev);
@@ -3207,6 +3246,10 @@ static void rtl_hw_phy_config(struct net_device *dev)
 		rtl8168f_2_hw_phy_config(tp);
 		break;
 
+	case RTL_GIGA_MAC_VER_37:
+		rtl8402_hw_phy_config(tp);
+		break;
+
 	default:
 		break;
 	}
@@ -3444,6 +3487,7 @@ static void rtl_wol_suspend_quirk(struct rtl8169_private *tp)
 	case RTL_GIGA_MAC_VER_32:
 	case RTL_GIGA_MAC_VER_33:
 	case RTL_GIGA_MAC_VER_34:
+	case RTL_GIGA_MAC_VER_37:
 		RTL_W32(RxConfig, RTL_R32(RxConfig) |
 			AcceptBroadcast | AcceptMulticast | AcceptMyPhys);
 		break;
@@ -3665,6 +3709,7 @@ static void __devinit rtl_init_pll_power_ops(struct rtl8169_private *tp)
 	case RTL_GIGA_MAC_VER_16:
 	case RTL_GIGA_MAC_VER_29:
 	case RTL_GIGA_MAC_VER_30:
+	case RTL_GIGA_MAC_VER_37:
 		ops->down	= r810x_pll_power_down;
 		ops->up		= r810x_pll_power_up;
 		break;
@@ -3974,7 +4019,8 @@ static void rtl8169_hw_reset(struct rtl8169_private *tp)
 			udelay(20);
 	} else if (tp->mac_version == RTL_GIGA_MAC_VER_34 ||
 	           tp->mac_version == RTL_GIGA_MAC_VER_35 ||
-	           tp->mac_version == RTL_GIGA_MAC_VER_36) {
+	           tp->mac_version == RTL_GIGA_MAC_VER_36 ||
+	           tp->mac_version == RTL_GIGA_MAC_VER_37) {
 		RTL_W8(ChipCmd, RTL_R8(ChipCmd) | StopReq);
 		while (!(RTL_R32(TxConfig) & TXCFG_EMPTY))
 			udelay(100);
@@ -4246,6 +4292,41 @@ static u32 r8169_csi_read(void __iomem *ioaddr, int addr)
 	return value;
 }
 
+static void r8402_csi_write(void __iomem *ioaddr, int addr, int value)
+{
+	unsigned int i;
+
+	RTL_W32(CSIDR, value);
+	RTL_W32(CSIAR, CSIAR_WRITE_CMD | (addr & CSIAR_ADDR_MASK) |
+		CSIAR_BYTE_ENABLE << CSIAR_BYTE_ENABLE_SHIFT |
+		CSIAR_FUNC_NIC);
+
+	for (i = 0; i < 100; i++) {
+		if (!(RTL_R32(CSIAR) & CSIAR_FLAG))
+			break;
+		udelay(10);
+	}
+}
+
+static u32 r8402_csi_read(void __iomem *ioaddr, int addr)
+{
+	u32 value = ~0x00;
+	unsigned int i;
+
+	RTL_W32(CSIAR, (addr & CSIAR_ADDR_MASK) | CSIAR_FUNC_NIC |
+		CSIAR_BYTE_ENABLE << CSIAR_BYTE_ENABLE_SHIFT);
+
+	for (i = 0; i < 100; i++) {
+		if (RTL_R32(CSIAR) & CSIAR_FLAG) {
+			value = RTL_R32(CSIDR);
+			break;
+		}
+		udelay(10);
+	}
+
+	return value;
+}
+
 static void __devinit rtl_init_csi_ops(struct rtl8169_private *tp)
 {
 	struct csi_ops *ops = &tp->csi_ops;
@@ -4269,6 +4350,11 @@ static void __devinit rtl_init_csi_ops(struct rtl8169_private *tp)
 		ops->read	= NULL;
 		break;
 
+	case RTL_GIGA_MAC_VER_37:
+		ops->write	= r8402_csi_write;
+		ops->read	= r8402_csi_read;
+		break;
+
 	default:
 		ops->write	= r8169_csi_write;
 		ops->read	= r8169_csi_read;
@@ -4854,6 +4940,36 @@ static void rtl_hw_start_8105e_2(struct rtl8169_private *tp)
 	rtl_ephy_write(ioaddr, 0x1e, rtl_ephy_read(ioaddr, 0x1e) | 0x8000);
 }
 
+static void rtl_hw_start_8402(struct rtl8169_private *tp)
+{
+	void __iomem *ioaddr = tp->mmio_addr;
+	static const struct ephy_info e_info_8402[] = {
+		{ 0x19,	0xffff, 0xff64 },
+		{ 0x1e,	0, 0x4000 }
+	};
+
+	rtl_csi_access_enable_2(tp);
+
+	/* Force LAN exit from ASPM if Rx/Tx are not idle */
+	RTL_W32(FuncEvent, RTL_R32(FuncEvent) | 0x002800);
+
+	RTL_W32(TxConfig, RTL_R32(TxConfig) | TXCFG_AUTO_FIFO);
+	RTL_W8(MCU, RTL_R8(MCU) & ~NOW_IS_OOB);
+
+	rtl_ephy_init(ioaddr, e_info_8402, ARRAY_SIZE(e_info_8402));
+
+	rtl_tx_performance_tweak(tp->pci_dev, 0x5 << MAX_READ_REQUEST_SHIFT);
+
+	rtl_eri_write(ioaddr, 0xc8, ERIAR_MASK_1111, 0x00000002, ERIAR_EXGMAC);
+	rtl_eri_write(ioaddr, 0xe8, ERIAR_MASK_1111, 0x00000006, ERIAR_EXGMAC);
+	rtl_w1w0_eri(ioaddr, 0xdc, ERIAR_MASK_0001, 0x00, 0x01, ERIAR_EXGMAC);
+	rtl_w1w0_eri(ioaddr, 0xdc, ERIAR_MASK_0001, 0x01, 0x00, ERIAR_EXGMAC);
+	rtl_eri_write(ioaddr, 0xc0, ERIAR_MASK_0011, 0x0000, ERIAR_EXGMAC);
+	rtl_eri_write(ioaddr, 0xb8, ERIAR_MASK_0011, 0x0000, ERIAR_EXGMAC);
+	rtl_w1w0_eri(ioaddr, 0x0d4, ERIAR_MASK_0011, 0x0e00, 0xff00,
+		     ERIAR_EXGMAC);
+}
+
 static void rtl_hw_start_8101(struct net_device *dev)
 {
 	struct rtl8169_private *tp = netdev_priv(dev);
@@ -4894,6 +5010,10 @@ static void rtl_hw_start_8101(struct net_device *dev)
 	case RTL_GIGA_MAC_VER_30:
 		rtl_hw_start_8105e_2(tp);
 		break;
+
+	case RTL_GIGA_MAC_VER_37:
+		rtl_hw_start_8402(tp);
+		break;
 	}
 
 	RTL_W8(Cfg9346, Cfg9346_Lock);
-- 
1.7.7.6

^ permalink raw reply related

* [PATCH net-next v2 4/5] r8169: adjust some functions of 8111f
From: Hayes Wang @ 2012-03-28  8:26 UTC (permalink / raw)
  To: romieu; +Cc: netdev, linux-kernel, Hayes Wang
In-Reply-To: <1332923214-5071-1-git-send-email-hayeswang@realtek.com>

Put some settings of 8111f into one function which may be reused.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
---
 drivers/net/ethernet/realtek/r8169.c |   99 ++++++++++++++++------------------
 1 files changed, 47 insertions(+), 52 deletions(-)

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index aa23a25..cde5cea 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -3005,6 +3005,28 @@ static void rtl8168e_2_hw_phy_config(struct rtl8169_private *tp)
 	rtl_writephy(tp, 0x1f, 0x0000);
 }
 
+static void rtl8168f_hw_phy_config(struct rtl8169_private *tp)
+{
+	/* For 4-corner performance improve */
+	rtl_writephy(tp, 0x1f, 0x0005);
+	rtl_writephy(tp, 0x05, 0x8b80);
+	rtl_w1w0_phy(tp, 0x06, 0x0006, 0x0000);
+	rtl_writephy(tp, 0x1f, 0x0000);
+
+	/* PHY auto speed down */
+	rtl_writephy(tp, 0x1f, 0x0007);
+	rtl_writephy(tp, 0x1e, 0x002d);
+	rtl_w1w0_phy(tp, 0x18, 0x0010, 0x0000);
+	rtl_writephy(tp, 0x1f, 0x0000);
+	rtl_w1w0_phy(tp, 0x14, 0x8000, 0x0000);
+
+	/* Improve 10M EEE waveform */
+	rtl_writephy(tp, 0x1f, 0x0005);
+	rtl_writephy(tp, 0x05, 0x8b86);
+	rtl_w1w0_phy(tp, 0x06, 0x0001, 0x0000);
+	rtl_writephy(tp, 0x1f, 0x0000);
+}
+
 static void rtl8168f_1_hw_phy_config(struct rtl8169_private *tp)
 {
 	static const struct phy_reg phy_reg_init[] = {
@@ -3046,24 +3068,7 @@ static void rtl8168f_1_hw_phy_config(struct rtl8169_private *tp)
 
 	rtl_writephy_batch(tp, phy_reg_init, ARRAY_SIZE(phy_reg_init));
 
-	/* For 4-corner performance improve */
-	rtl_writephy(tp, 0x1f, 0x0005);
-	rtl_writephy(tp, 0x05, 0x8b80);
-	rtl_w1w0_phy(tp, 0x06, 0x0006, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0000);
-
-	/* PHY auto speed down */
-	rtl_writephy(tp, 0x1f, 0x0007);
-	rtl_writephy(tp, 0x1e, 0x002d);
-	rtl_w1w0_phy(tp, 0x18, 0x0010, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0000);
-	rtl_w1w0_phy(tp, 0x14, 0x8000, 0x0000);
-
-	/* Improve 10M EEE waveform */
-	rtl_writephy(tp, 0x1f, 0x0005);
-	rtl_writephy(tp, 0x05, 0x8b86);
-	rtl_w1w0_phy(tp, 0x06, 0x0001, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0000);
+	rtl8168f_hw_phy_config(tp);
 
 	/* Improve 2-pair detection performance */
 	rtl_writephy(tp, 0x1f, 0x0005);
@@ -3076,24 +3081,7 @@ static void rtl8168f_2_hw_phy_config(struct rtl8169_private *tp)
 {
 	rtl_apply_firmware(tp);
 
-	/* For 4-corner performance improve */
-	rtl_writephy(tp, 0x1f, 0x0005);
-	rtl_writephy(tp, 0x05, 0x8b80);
-	rtl_w1w0_phy(tp, 0x06, 0x0006, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0000);
-
-	/* PHY auto speed down */
-	rtl_writephy(tp, 0x1f, 0x0007);
-	rtl_writephy(tp, 0x1e, 0x002d);
-	rtl_w1w0_phy(tp, 0x18, 0x0010, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0000);
-	rtl_w1w0_phy(tp, 0x14, 0x8000, 0x0000);
-
-	/* Improve 10M EEE waveform */
-	rtl_writephy(tp, 0x1f, 0x0005);
-	rtl_writephy(tp, 0x05, 0x8b86);
-	rtl_w1w0_phy(tp, 0x06, 0x0001, 0x0000);
-	rtl_writephy(tp, 0x1f, 0x0000);
+	rtl8168f_hw_phy_config(tp);
 }
 
 static void rtl8102e_hw_phy_config(struct rtl8169_private *tp)
@@ -4687,20 +4675,12 @@ static void rtl_hw_start_8168e_2(struct rtl8169_private *tp)
 	RTL_W8(Config5, RTL_R8(Config5) & ~Spi_en);
 }
 
-static void rtl_hw_start_8168f_1(struct rtl8169_private *tp)
+static void rtl_hw_start_8168f(struct rtl8169_private *tp)
 {
 	void __iomem *ioaddr = tp->mmio_addr;
 	struct pci_dev *pdev = tp->pci_dev;
-	static const struct ephy_info e_info_8168f_1[] = {
-		{ 0x06, 0x00c0,	0x0020 },
-		{ 0x08, 0x0001,	0x0002 },
-		{ 0x09, 0x0000,	0x0080 },
-		{ 0x19, 0x0000,	0x0224 }
-	};
-
-	rtl_csi_access_enable_1(tp);
 
-	rtl_ephy_init(ioaddr, e_info_8168f_1, ARRAY_SIZE(e_info_8168f_1));
+	rtl_csi_access_enable_2(tp);
 
 	rtl_tx_performance_tweak(pdev, 0x5 << MAX_READ_REQUEST_SHIFT);
 
@@ -4714,8 +4694,6 @@ static void rtl_hw_start_8168f_1(struct rtl8169_private *tp)
 	rtl_w1w0_eri(ioaddr, 0x1d0, ERIAR_MASK_0001, 0x10, 0x00, ERIAR_EXGMAC);
 	rtl_eri_write(ioaddr, 0xcc, ERIAR_MASK_1111, 0x00000050, ERIAR_EXGMAC);
 	rtl_eri_write(ioaddr, 0xd0, ERIAR_MASK_1111, 0x00000060, ERIAR_EXGMAC);
-	rtl_w1w0_eri(ioaddr, 0x0d4, ERIAR_MASK_0011, 0x0c00, 0xff00,
-		     ERIAR_EXGMAC);
 
 	RTL_W8(MaxTxPacketSize, EarlySize);
 
@@ -4723,15 +4701,32 @@ static void rtl_hw_start_8168f_1(struct rtl8169_private *tp)
 
 	RTL_W32(TxConfig, RTL_R32(TxConfig) | TXCFG_AUTO_FIFO);
 	RTL_W8(MCU, RTL_R8(MCU) & ~NOW_IS_OOB);
-
-	/* Adjust EEE LED frequency */
-	RTL_W8(EEE_LED, RTL_R8(EEE_LED) & ~0x07);
-
 	RTL_W8(DLLPR, RTL_R8(DLLPR) | PFM_EN);
 	RTL_W32(MISC, RTL_R32(MISC) | PWM_EN);
 	RTL_W8(Config5, RTL_R8(Config5) & ~Spi_en);
 }
 
+static void rtl_hw_start_8168f_1(struct rtl8169_private *tp)
+{
+	void __iomem *ioaddr = tp->mmio_addr;
+	static const struct ephy_info e_info_8168f_1[] = {
+		{ 0x06, 0x00c0,	0x0020 },
+		{ 0x08, 0x0001,	0x0002 },
+		{ 0x09, 0x0000,	0x0080 },
+		{ 0x19, 0x0000,	0x0224 }
+	};
+
+	rtl_hw_start_8168f(tp);
+
+	rtl_ephy_init(ioaddr, e_info_8168f_1, ARRAY_SIZE(e_info_8168f_1));
+
+	rtl_w1w0_eri(ioaddr, 0x0d4, ERIAR_MASK_0011, 0x0c00, 0xff00,
+		     ERIAR_EXGMAC);
+
+	/* Adjust EEE LED frequency */
+	RTL_W8(EEE_LED, RTL_R8(EEE_LED) & ~0x07);
+}
+
 static void rtl_hw_start_8168(struct net_device *dev)
 {
 	struct rtl8169_private *tp = netdev_priv(dev);
-- 
1.7.7.6

^ permalink raw reply related

* [PATCH net-next v2 5/5] r8169: support RTL8411
From: Hayes Wang @ 2012-03-28  8:26 UTC (permalink / raw)
  To: romieu; +Cc: netdev, linux-kernel, Hayes Wang
In-Reply-To: <1332923214-5071-1-git-send-email-hayeswang@realtek.com>

Support the new chip RTL8411.

Signed-off-by: Hayes Wang <hayeswang@realtek.com>
---
 drivers/net/ethernet/realtek/r8169.c |  142 +++++++++++++++++++++++++++++++++-
 1 files changed, 139 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index cde5cea..d00f4e9 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -46,6 +46,7 @@
 #define FIRMWARE_8168F_2	"rtl_nic/rtl8168f-2.fw"
 #define FIRMWARE_8105E_1	"rtl_nic/rtl8105e-1.fw"
 #define FIRMWARE_8402_1		"rtl_nic/rtl8402-1.fw"
+#define FIRMWARE_8411_1		"rtl_nic/rtl8411-1.fw"
 
 #ifdef RTL8169_DEBUG
 #define assert(expr) \
@@ -136,6 +137,7 @@ enum mac_version {
 	RTL_GIGA_MAC_VER_35,
 	RTL_GIGA_MAC_VER_36,
 	RTL_GIGA_MAC_VER_37,
+	RTL_GIGA_MAC_VER_38,
 	RTL_GIGA_MAC_NONE   = 0xff,
 };
 
@@ -250,7 +252,10 @@ static const struct {
 							JUMBO_9K, false),
 	[RTL_GIGA_MAC_VER_37] =
 		_R("RTL8402",		RTL_TD_1, FIRMWARE_8402_1,
-							JUMBO_1K, true)
+							JUMBO_1K, true),
+	[RTL_GIGA_MAC_VER_38] =
+		_R("RTL8411",		RTL_TD_1, FIRMWARE_8411_1,
+							JUMBO_9K, false)
 };
 #undef _R
 
@@ -783,6 +788,7 @@ MODULE_FIRMWARE(FIRMWARE_8105E_1);
 MODULE_FIRMWARE(FIRMWARE_8168F_1);
 MODULE_FIRMWARE(FIRMWARE_8168F_2);
 MODULE_FIRMWARE(FIRMWARE_8402_1);
+MODULE_FIRMWARE(FIRMWARE_8411_1);
 
 static void rtl_lock_work(struct rtl8169_private *tp)
 {
@@ -1262,7 +1268,8 @@ static void rtl_link_chg_patch(struct rtl8169_private *tp)
 	if (!netif_running(dev))
 		return;
 
-	if (tp->mac_version == RTL_GIGA_MAC_VER_34) {
+	if (tp->mac_version == RTL_GIGA_MAC_VER_34 ||
+	    tp->mac_version == RTL_GIGA_MAC_VER_38) {
 		if (RTL_R8(PHYstatus) & _1000bpsF) {
 			rtl_eri_write(ioaddr, 0x1bc, ERIAR_MASK_1111,
 				      0x00000011, ERIAR_EXGMAC);
@@ -1867,6 +1874,7 @@ static void rtl8169_get_mac_version(struct rtl8169_private *tp,
 		int mac_version;
 	} mac_info[] = {
 		/* 8168F family. */
+		{ 0x7c800000, 0x48800000,	RTL_GIGA_MAC_VER_38 },
 		{ 0x7cf00000, 0x48100000,	RTL_GIGA_MAC_VER_36 },
 		{ 0x7cf00000, 0x48000000,	RTL_GIGA_MAC_VER_35 },
 
@@ -3084,6 +3092,104 @@ static void rtl8168f_2_hw_phy_config(struct rtl8169_private *tp)
 	rtl8168f_hw_phy_config(tp);
 }
 
+static void rtl8411_hw_phy_config(struct rtl8169_private *tp)
+{
+	void __iomem *ioaddr = tp->mmio_addr;
+	static const struct phy_reg phy_reg_init[] = {
+		/* Channel estimation fine tune */
+		{ 0x1f, 0x0003 },
+		{ 0x09, 0xa20f },
+		{ 0x1f, 0x0000 },
+
+		/* Modify green table for giga & fnet */
+		{ 0x1f, 0x0005 },
+		{ 0x05, 0x8b55 },
+		{ 0x06, 0x0000 },
+		{ 0x05, 0x8b5e },
+		{ 0x06, 0x0000 },
+		{ 0x05, 0x8b67 },
+		{ 0x06, 0x0000 },
+		{ 0x05, 0x8b70 },
+		{ 0x06, 0x0000 },
+		{ 0x1f, 0x0000 },
+		{ 0x1f, 0x0007 },
+		{ 0x1e, 0x0078 },
+		{ 0x17, 0x0000 },
+		{ 0x19, 0x00aa },
+		{ 0x1f, 0x0000 },
+
+		/* Modify green table for 10M */
+		{ 0x1f, 0x0005 },
+		{ 0x05, 0x8b79 },
+		{ 0x06, 0xaa00 },
+		{ 0x1f, 0x0000 },
+
+		/* Disable hiimpedance detection (RTCT) */
+		{ 0x1f, 0x0003 },
+		{ 0x01, 0x328a },
+		{ 0x1f, 0x0000 }
+	};
+
+
+	rtl_apply_firmware(tp);
+
+	rtl8168f_hw_phy_config(tp);
+
+	/* Improve 2-pair detection performance */
+	rtl_writephy(tp, 0x1f, 0x0005);
+	rtl_writephy(tp, 0x05, 0x8b85);
+	rtl_w1w0_phy(tp, 0x06, 0x4000, 0x0000);
+	rtl_writephy(tp, 0x1f, 0x0000);
+
+	rtl_writephy_batch(tp, phy_reg_init, ARRAY_SIZE(phy_reg_init));
+
+	/* Modify green table for giga */
+	rtl_writephy(tp, 0x1f, 0x0005);
+	rtl_writephy(tp, 0x05, 0x8b54);
+	rtl_w1w0_phy(tp, 0x06, 0x0000, 0x0800);
+	rtl_writephy(tp, 0x05, 0x8b5d);
+	rtl_w1w0_phy(tp, 0x06, 0x0000, 0x0800);
+	rtl_writephy(tp, 0x05, 0x8a7c);
+	rtl_w1w0_phy(tp, 0x06, 0x0000, 0x0100);
+	rtl_writephy(tp, 0x05, 0x8a7f);
+	rtl_w1w0_phy(tp, 0x06, 0x0100, 0x0000);
+	rtl_writephy(tp, 0x05, 0x8a82);
+	rtl_w1w0_phy(tp, 0x06, 0x0000, 0x0100);
+	rtl_writephy(tp, 0x05, 0x8a85);
+	rtl_w1w0_phy(tp, 0x06, 0x0000, 0x0100);
+	rtl_writephy(tp, 0x05, 0x8a88);
+	rtl_w1w0_phy(tp, 0x06, 0x0000, 0x0100);
+	rtl_writephy(tp, 0x1f, 0x0000);
+
+	/* uc same-seed solution */
+	rtl_writephy(tp, 0x1f, 0x0005);
+	rtl_writephy(tp, 0x05, 0x8b85);
+	rtl_w1w0_phy(tp, 0x06, 0x8000, 0x0000);
+	rtl_writephy(tp, 0x1f, 0x0000);
+
+	/* eee setting */
+	rtl_w1w0_eri(ioaddr, 0x1b0, ERIAR_MASK_0001, 0x00, 0x03, ERIAR_EXGMAC);
+	rtl_writephy(tp, 0x1f, 0x0005);
+	rtl_writephy(tp, 0x05, 0x8b85);
+	rtl_w1w0_phy(tp, 0x06, 0x0000, 0x2000);
+	rtl_writephy(tp, 0x1f, 0x0004);
+	rtl_writephy(tp, 0x1f, 0x0007);
+	rtl_writephy(tp, 0x1e, 0x0020);
+	rtl_w1w0_phy(tp, 0x15, 0x0000, 0x0100);
+	rtl_writephy(tp, 0x1f, 0x0000);
+	rtl_writephy(tp, 0x0d, 0x0007);
+	rtl_writephy(tp, 0x0e, 0x003c);
+	rtl_writephy(tp, 0x0d, 0x4007);
+	rtl_writephy(tp, 0x0e, 0x0000);
+	rtl_writephy(tp, 0x0d, 0x0000);
+
+	/* Green feature */
+	rtl_writephy(tp, 0x1f, 0x0003);
+	rtl_w1w0_phy(tp, 0x19, 0x0000, 0x0001);
+	rtl_w1w0_phy(tp, 0x10, 0x0000, 0x0400);
+	rtl_writephy(tp, 0x1f, 0x0000);
+}
+
 static void rtl8102e_hw_phy_config(struct rtl8169_private *tp)
 {
 	static const struct phy_reg phy_reg_init[] = {
@@ -3238,6 +3344,10 @@ static void rtl_hw_phy_config(struct net_device *dev)
 		rtl8402_hw_phy_config(tp);
 		break;
 
+	case RTL_GIGA_MAC_VER_38:
+		rtl8411_hw_phy_config(tp);
+		break;
+
 	default:
 		break;
 	}
@@ -3476,6 +3586,7 @@ static void rtl_wol_suspend_quirk(struct rtl8169_private *tp)
 	case RTL_GIGA_MAC_VER_33:
 	case RTL_GIGA_MAC_VER_34:
 	case RTL_GIGA_MAC_VER_37:
+	case RTL_GIGA_MAC_VER_38:
 		RTL_W32(RxConfig, RTL_R32(RxConfig) |
 			AcceptBroadcast | AcceptMulticast | AcceptMyPhys);
 		break;
@@ -3722,6 +3833,7 @@ static void __devinit rtl_init_pll_power_ops(struct rtl8169_private *tp)
 	case RTL_GIGA_MAC_VER_34:
 	case RTL_GIGA_MAC_VER_35:
 	case RTL_GIGA_MAC_VER_36:
+	case RTL_GIGA_MAC_VER_38:
 		ops->down	= r8168_pll_power_down;
 		ops->up		= r8168_pll_power_up;
 		break;
@@ -4008,7 +4120,8 @@ static void rtl8169_hw_reset(struct rtl8169_private *tp)
 	} else if (tp->mac_version == RTL_GIGA_MAC_VER_34 ||
 	           tp->mac_version == RTL_GIGA_MAC_VER_35 ||
 	           tp->mac_version == RTL_GIGA_MAC_VER_36 ||
-	           tp->mac_version == RTL_GIGA_MAC_VER_37) {
+	           tp->mac_version == RTL_GIGA_MAC_VER_37 ||
+	           tp->mac_version == RTL_GIGA_MAC_VER_38) {
 		RTL_W8(ChipCmd, RTL_R8(ChipCmd) | StopReq);
 		while (!(RTL_R32(TxConfig) & TXCFG_EMPTY))
 			udelay(100);
@@ -4339,6 +4452,7 @@ static void __devinit rtl_init_csi_ops(struct rtl8169_private *tp)
 		break;
 
 	case RTL_GIGA_MAC_VER_37:
+	case RTL_GIGA_MAC_VER_38:
 		ops->write	= r8402_csi_write;
 		ops->read	= r8402_csi_read;
 		break;
@@ -4727,6 +4841,24 @@ static void rtl_hw_start_8168f_1(struct rtl8169_private *tp)
 	RTL_W8(EEE_LED, RTL_R8(EEE_LED) & ~0x07);
 }
 
+static void rtl_hw_start_8411(struct rtl8169_private *tp)
+{
+	void __iomem *ioaddr = tp->mmio_addr;
+	static const struct ephy_info e_info_8168f_1[] = {
+		{ 0x06, 0x00c0,	0x0020 },
+		{ 0x0f, 0xffff,	0x5200 },
+		{ 0x1e, 0x0000,	0x4000 },
+		{ 0x19, 0x0000,	0x0224 }
+	};
+
+	rtl_hw_start_8168f(tp);
+
+	rtl_ephy_init(ioaddr, e_info_8168f_1, ARRAY_SIZE(e_info_8168f_1));
+
+	rtl_w1w0_eri(ioaddr, 0x0d4, ERIAR_MASK_0011, 0x0c00, 0x0000,
+		     ERIAR_EXGMAC);
+}
+
 static void rtl_hw_start_8168(struct net_device *dev)
 {
 	struct rtl8169_private *tp = netdev_priv(dev);
@@ -4824,6 +4956,10 @@ static void rtl_hw_start_8168(struct net_device *dev)
 		rtl_hw_start_8168f_1(tp);
 		break;
 
+	case RTL_GIGA_MAC_VER_38:
+		rtl_hw_start_8411(tp);
+		break;
+
 	default:
 		printk(KERN_ERR PFX "%s: unknown chipset (mac_version = %d).\n",
 			dev->name, tp->mac_version);
-- 
1.7.7.6

^ permalink raw reply related

* Re: [PATCH net-next] virtio_net: do not rate limit counter increments
From: Michael S. Tsirkin @ 2012-03-28  8:30 UTC (permalink / raw)
  To: Rick Jones; +Cc: netdev, virtualization
In-Reply-To: <20120327172809.C52572900384@tardy>

On Tue, Mar 27, 2012 at 10:28:09AM -0700, Rick Jones wrote:
> From: Rick Jones <rick.jones2@hp.com>
> 
> While it is desirable to rate limit certain messages, it is not
> desirable to rate limit the incrementing of counters associated
> with those messages.
> 
> Signed-off-by: Rick Jones <rick.jones2@hp.com>


Acked-by: Michael S. Tsirkin <mst@redhat.com>

Dave, can you apply pls? Thanks!

> ---
> 
> Compiled, and run briefly in a 1 vCPU guest under a netperf workload.
> 
> 
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 019da01..4de2760 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -625,12 +625,13 @@ static netdev_tx_t start_xmit(struct sk_buff *skb, struct net_device *dev)
>  
>  	/* This can happen with OOM and indirect buffers. */
>  	if (unlikely(capacity < 0)) {
> -		if (net_ratelimit()) {
> -			if (likely(capacity == -ENOMEM)) {
> +		if (likely(capacity == -ENOMEM)) {
> +			if (net_ratelimit()) {
>  				dev_warn(&dev->dev,
>  					 "TX queue failure: out of memory\n");
>  			} else {
> -				dev->stats.tx_fifo_errors++;
> +			dev->stats.tx_fifo_errors++;
> +			if (net_ratelimit())
>  				dev_warn(&dev->dev,
>  					 "Unexpected TX queue failure: %d\n",
>  					 capacity);

^ permalink raw reply

* Re: [PATCH net-next] virtio_net: do not rate limit counter increments
From: David Miller @ 2012-03-28  8:41 UTC (permalink / raw)
  To: mst; +Cc: netdev, rick.jones2, virtualization
In-Reply-To: <20120328083046.GA5873@redhat.com>

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: Wed, 28 Mar 2012 10:30:46 +0200

> On Tue, Mar 27, 2012 at 10:28:09AM -0700, Rick Jones wrote:
>> From: Rick Jones <rick.jones2@hp.com>
>> 
>> While it is desirable to rate limit certain messages, it is not
>> desirable to rate limit the incrementing of counters associated
>> with those messages.
>> 
>> Signed-off-by: Rick Jones <rick.jones2@hp.com>
> 
> 
> Acked-by: Michael S. Tsirkin <mst@redhat.com>
> 
> Dave, can you apply pls? Thanks!

Done.

^ permalink raw reply

* suspicious RCU usage warnings in 3.3.0
From: Meelis Roos @ 2012-03-28  8:45 UTC (permalink / raw)
  To: Linux Kernel list, netdev

This v3.3 release running on sparc64 UP (Sun Fire V100). Today I noticed 
it has gotten a bunch on RCU warnings from different netowrk-related 
places. Some are from tulip irq's, some are from network-related 
softirqs.

Is this the same RCU problem that was fixed after 3.3 (fix a potential 
rcu_read_lock() imbalance in rt6_fill_node())? My problem does not seem 
to be ipv6-only, most traces are from IPv6 but some for ip.

[    0.000000] PROMLIB: Sun IEEE Boot Prom 'OBP 4.0.18 2002/05/23 18:22'
[    0.000000] PROMLIB: Root node compatible: sun4u
[    0.000000] Linux version 3.3.0 (mroos@janku) (gcc version 4.6.2 (Debian 4.6.2-9) ) #34 Mon Mar 19 13:26:20 EET 2012
[    0.000000] debug: ignoring loglevel setting.
[    0.000000] bootconsole [earlyprom0] enabled
[    0.000000] ARCH: SUN4U
[    0.000000] Ethernet address: 00:03:ba:11:b3:71
[    0.000000] Kernel: Using 4 locked TLB entries for main kernel image.
[    0.000000] Remapping the kernel... done.
[    0.000000] OF stdout device is: /pci@1f,0/isa@7/serial@0,3f8
[    0.000000] PROM: Built device tree with 46445 bytes of memory.
[    0.000000] Top of RAM: 0x6fec6000, Total RAM: 0x3fe34000
[    0.000000] Memory hole size: 768MB
[    0.000000] [0000010000000000-fffff80000400000] page_structs=131072 node=0 entry=0/8192
[    0.000000] [0000010000000000-fffff80000800000] page_structs=131072 node=0 entry=1/8192
[    0.000000] [0000010000800000-fffff80000c00000] page_structs=131072 node=0 entry=2/8192
[    0.000000] [0000010000800000-fffff80001000000] page_structs=131072 node=0 entry=3/8192
[    0.000000] Zone PFN ranges:
[    0.000000]   Normal   0x00000000 -> 0x00037f63
[    0.000000] Movable zone start PFN for each node
[    0.000000] Early memory PFN ranges
[    0.000000]     0: 0x00000000 -> 0x00008000
[    0.000000]     0: 0x00010000 -> 0x00018000
[    0.000000]     0: 0x00020000 -> 0x00028000
[    0.000000]     0: 0x00030000 -> 0x000377ff
[    0.000000]     0: 0x00037800 -> 0x00037f00
[    0.000000]     0: 0x00037f40 -> 0x00037f58
[    0.000000]     0: 0x00037f60 -> 0x00037f63
[    0.000000] On node 0 totalpages: 130842
[    0.000000]   Normal zone: 1791 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 129051 pages, LIFO batch:15
[    0.000000] Booting Linux...
[    0.000000] CPU CAPS: [flush,stbar,swap,muldiv,v9,mul32,div32,v8plus]
[    0.000000] CPU CAPS: [vis]
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129051
[    0.000000] Kernel command line: ro root=/dev/sda2 debug ignore_loglevel
[    0.000000] PID hash table entries: 4096 (order: 2, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 1048576 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 524288 bytes)
[    0.000000] Memory: 1014928k available (3208k kernel code, 1536k data, 168k init) [fffff80000000000,000000006fec6000]
[    0.000000] NR_IRQS:255
[    0.000000] clocksource: mult[b400012e] shift[24]
[    0.000000] clockevent: mult[16c16bf] shift[32]
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled, bootconsole disabled
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000000] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000000] ... CHAINHASH_SIZE:          16384
[    0.000000]  memory used by lock dependency info: 5855 kB
[    0.000000]  per task-struct memory footprint: 1920 bytes
[   69.989909] Calibrating delay using timer specific routine.. 11.14 BogoMIPS (lpj=55721)
[   69.989978] pid_max: default: 32768 minimum: 301
[   69.990421] Security Framework initialized
[   69.990686] Mount-cache hash table entries: 512
[   69.998008] NET: Registered protocol family 16
[   69.999740] kworker/u:0 used greatest stack depth: 11056 bytes left
[   70.042048] /pci@1f,0: PCI IO[1fe02000000] MEM[1ff00000000]
[   70.042305] /pci@1f,0: SABRE PCI Bus Module ver[0:0]
[   70.042350] PCI: Scanning PBM /pci@1f,0
[   70.043882] sabre f0069d48: PCI host bridge to bus 0000:00
[   70.043947] pci_bus 0000:00: root bus resource [io  0x1fe02000000-0x1fe02ffffff]
[   70.044024] pci_bus 0000:00: root bus resource [mem 0x1ff00000000-0x1ffffffffff]
[   70.044608] pci 0000:00:03.0: quirk: [io  0x1fe02002000-0x1fe0200203f] claimed by ali7101 ACPI
[   70.044719] pci 0000:00:03.0: quirk: [io  0x1fe02004000-0x1fe0200401f] claimed by ali7101 SMB
[   70.045066] pci 0000:00:0c.0: PME# supported from D3hot D3cold
[   70.045426] pci 0000:00:05.0: PME# supported from D3hot D3cold
[   70.088833] bio: create slab <bio-0> at 0
[   70.092136] vgaarb: loaded
[   70.094524] SCSI subsystem initialized
[   70.096642] libata version 3.00 loaded.
[   70.101859] /pci@1f,0/isa@7/rtc@0,70: RTC regs at 0x1fe02000070
[   70.105994] Switching to clocksource hbtick
[   70.157926] NET: Registered protocol family 2
[   70.159040] IP route cache hash table entries: 8192 (order: 3, 65536 bytes)
[   70.162712] TCP established hash table entries: 32768 (order: 6, 524288 bytes)
[   70.165577] TCP bind hash table entries: 32768 (order: 8, 2097152 bytes)
[   70.180171] TCP: Hash tables configured (established 32768 bind 32768)
[   70.180459] TCP reno registered
[   70.180572] UDP hash table entries: 512 (order: 3, 81920 bytes)
[   70.181234] UDP-Lite hash table entries: 512 (order: 3, 81920 bytes)
[   70.182776] NET: Registered protocol family 1
[   70.182975] pci 0000:00:07.0: Activating ISA DMA hang workarounds
[   70.183149] PCI: Enabling device: (0000:00:0a.0), cmd 2
[   70.236405] PCI: CLS 0 bytes, default 64
[   70.236950] power: Control reg at 1fe02002000
[   70.250298] Initializing RT-Tester: OK
[   70.253366] VFS: Disk quotas dquot_6.5.2
[   70.253777] Dquot-cache hash table entries: 1024 (order 0, 8192 bytes)
[   70.254961] msgmni has been set to 1982
[   70.258438] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[   70.258629] io scheduler noop registered
[   70.258797] io scheduler cfq registered (default)
[   70.258856] start plist test
[   70.265462] end plist test
[   70.267899] f0076e0c: ttyS0 at MMIO 0x1fe020003f8 (irq = 7) is a 16550A
[   70.268032] Console: ttyS0 (SU)
[   77.354042] console [ttyS0] enabled
[   77.401563] f0078af8: ttyS1 at MMIO 0x1fe020002e8 (irq = 7) is a 16550A
[   77.492787] PCI: Enabling device: (0000:00:0d.0), cmd 5
[   77.569755] scsi0 : pata_ali
[   77.610176] scsi1 : pata_ali
[   77.649634] ata1: PATA max UDMA/66 cmd 0x1fe02010200 ctl 0x1fe02010218 bmdma 0x1fe02010220 irq 12
[   77.766347] ata2: PATA max UDMA/66 cmd 0x1fe02010210 ctl 0x1fe02010208 bmdma 0x1fe02010228 irq 12
[   77.885481] Linux Tulip driver version 1.1.15-NAPI (Feb 27, 2007)
[   77.968530] tulip0: Old style EEPROM with no media selection information
[   78.057030] tulip0:  MII transceiver #1 config 3100 status 7829 advertising 01e1
[   78.173420] net eth0: Davicom DM9102/DM9102A rev 49 at MMIO 0x1ff00000000, EEPROM not present, 00:03:ba:11:b3:71, IRQ 9
[   78.318285] tulip1: Old style EEPROM with no media selection information
[   78.406657] tulip1:  MII transceiver #1 config 3100 status 7809 advertising 01e1
[   78.511567] net eth1: Davicom DM9102/DM9102A rev 49 at MMIO 0x1ff00002000, EEPROM not present, 00:03:ba:11:b3:72, IRQ 10
[   78.657071] mousedev: PS/2 mouse device common for all mice
[   78.731670] ata2.00: ATA-6: ST3120026A, 3.06, max UDMA/100
[   78.803854] ata2.00: 234441648 sectors, multi 0: LBA48 
[   78.872638] ata2.01: ATAPI: CD-224E, 1.7A, max UDMA/33
[   78.940240] ata2.01: WARNING: ATAPI DMA disabled for reliability issues.  It can be enabled
[   79.050089] ata2.01: WARNING: via pata_ali.atapi_dma modparam or corresponding sysfs node.
[   79.161120] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
[   79.244790] rtc0: no alarms, 114 bytes nvram
[   79.309942] TCP cubic registered
[   79.352357] NET: Registered protocol family 17
[   79.410783] Registering the dns_resolver key type
[   79.473107] registered taskstats version 1
[   79.528297] console [netcon0] enabled
[   79.576470] netconsole: network logging started
[   79.636063] rtc_cmos rtc_cmos: setting system clock to 2012-03-26 05:44:04 UTC (1332740644)
[   79.766627] ata2.00: configured for UDMA/66
[   79.836331] ata2.01: configured for UDMA/33
[   79.894238] scsi 1:0:0:0: Direct-Access     ATA      ST3120026A       3.06 PQ: 0 ANSI: 5
[   80.005842] sd 1:0:0:0: [sda] 234441648 512-byte logical blocks: (120 GB/111 GiB)
[   80.107941] scsi 1:0:1:0: CD-ROM            TEAC     CD-224E          1.7A PQ: 0 ANSI: 5
[   80.215833] sd 1:0:0:0: [sda] Write Protect is off
[   80.278875] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00
[   80.348777] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[   80.475976]  sda: sda1 sda2 sda3 sda4 sda5
[   80.538214] sd 1:0:0:0: [sda] Attached SCSI disk
[   80.617886] kjournald starting.  Commit interval 5 seconds
[   80.690279] EXT3-fs (sda2): mounted filesystem with writeback data mode
[   80.777592] VFS: Mounted root (ext3 filesystem) readonly on device 8:2.
[   81.516370] modprobe used greatest stack depth: 8360 bytes left
[   82.397903] ls used greatest stack depth: 6776 bytes left
[   83.456067] ps used greatest stack depth: 8 bytes left
[   85.644918] alim7101_wdt: Steve Hill <steve@navaho.co.uk>.
[   85.717182] alim7101_wdt: Detected old alim7101 revision 'a1d'.  If this is a cobalt board, set the 'use_gpio' module parameter.
[   86.469399] usbcore: registered new interface driver usbfs
[   86.542263] usbcore: registered new interface driver hub
[   86.612699] sr0: scsi3-mmc drive: 24x/24x cd/rw xa/form2 cdda tray
[   86.694009] cdrom: Uniform CD-ROM driver Revision: 3.20
[   86.764895] sr 1:0:1:0: Attached scsi CD-ROM sr0
[   86.869215] usbcore: registered new device driver usb
[   87.162842] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[   87.244150] ohci_hcd: block sizes: ed 80 td 96
[   87.302831] ohci_hcd 0000:00:0a.0: OHCI Host Controller
[   87.372686] drivers/usb/core/inode.c: creating file 'devices'
[   87.448598] drivers/usb/core/inode.c: creating file '001'
[   87.519684] ohci_hcd 0000:00:0a.0: new USB bus registered, assigned bus number 1
[   87.617272] ohci_hcd 0000:00:0a.0: created debug files
[   87.684947] ohci_hcd 0000:00:0a.0: irq 11, io mem 0x1ff01000000
[   87.820204] ohci_hcd 0000:00:0a.0: OHCI controller state
[   87.890563] ohci_hcd 0000:00:0a.0: OHCI 1.0, NO legacy support registers, rh state running
[   87.999432] ohci_hcd 0000:00:0a.0: control 0x083 HCFS=operational CBSR=3
[   88.087610] ohci_hcd 0000:00:0a.0: cmdstatus 0x00000 SOC=0
[   88.159714] ohci_hcd 0000:00:0a.0: intrstatus 0x00000044 RHSC SF
[   88.238671] ohci_hcd 0000:00:0a.0: intrenable 0x8000000a MIE RD WDH
[   88.321303] ohci_hcd 0000:00:0a.0: hcca frame #01fa
[   88.385410] ohci_hcd 0000:00:0a.0: roothub.a 02000202 POTPGT=2 NPS NDP=2(2)
[   88.476927] ohci_hcd 0000:00:0a.0: roothub.b 00000000 PPCM=0000 DR=0000
[   88.563895] ohci_hcd 0000:00:0a.0: roothub.status 00008000 DRWE
[   88.641732] ohci_hcd 0000:00:0a.0: roothub.portstatus [0] 0x00000100 PPS
[   88.729838] ohci_hcd 0000:00:0a.0: roothub.portstatus [1] 0x00000100 PPS
[   88.818463] usb usb1: default language 0x0409
[   88.875845] usb usb1: udev 1, busnum 1, minor = 0
[   88.937666] usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
[   89.026901] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   89.121900] usb usb1: Product: OHCI Host Controller
[   89.185972] usb usb1: Manufacturer: Linux 3.3.0 ohci_hcd
[   89.255799] usb usb1: SerialNumber: 0000:00:0a.0
[   89.317926] usb usb1: usb_probe_device
[   89.367240] usb usb1: configuration #1 chosen from 1 choice
[   89.440940] usb usb1: adding 1-0:1.0 (config #1, interface 0)
[   89.517366] hub 1-0:1.0: usb_probe_interface
[   89.573463] hub 1-0:1.0: usb_probe_interface - got id
[   89.639856] hub 1-0:1.0: USB hub found
[   89.689224] hub 1-0:1.0: 2 ports detected
[   89.741879] hub 1-0:1.0: standalone hub
[   89.792262] hub 1-0:1.0: no power switching (usb 1.0)
[   89.858678] hub 1-0:1.0: global over-current protection
[   89.927356] hub 1-0:1.0: power on to power good time: 4ms
[   89.998581] hub 1-0:1.0: local power source is good
[   90.062749] hub 1-0:1.0: no over-current condition exists
[   90.133726] hub 1-0:1.0: trying to enable port power on non-switchable hub
[   90.225517] drivers/usb/core/inode.c: creating file '001'
[   90.297389] sched: RT throttling activated
[   90.490240] hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0000
[   92.686636] Adding 3012176k swap on /dev/sda4.  Priority:-1 extents:1 across:3012176k 
[   93.212736] EXT3-fs (sda2): using internal journal
[   93.625108] loop: module loaded
[   98.063116] kjournald starting.  Commit interval 5 seconds
[   98.232699] EXT3-fs (sda1): using internal journal
[   98.295712] EXT3-fs (sda1): mounted filesystem with writeback data mode
[   98.408763] kjournald starting.  Commit interval 5 seconds
[   98.482162] EXT3-fs (sda5): using internal journal
[   98.545173] EXT3-fs (sda5): mounted filesystem with writeback data mode
[  104.240948] fuse init (API version 7.18)
[  107.466218] NET: Registered protocol family 10
[  117.616105] eth0: no IPv6 routers present
[13027.678644] 
[13027.698099] ------------[ cut here ]------------
[13027.698141] WARNING: at include/linux/rcupdate.h:242 __atomic_notifier_call_chain+0xa4/0x100()
[13027.698159] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13027.698212] Call Trace:
[13027.698242]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13027.698264]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13027.698285]  [0000000000473de4] __atomic_notifier_call_chain+0xa4/0x100
[13027.698307]  [0000000000473e54] atomic_notifier_call_chain+0x14/0x40
[13027.698339]  [00000000005eeb58] notify_write+0x18/0x40
[13027.698360]  [00000000005f213c] vt_console_print+0x17c/0x3e0
[13027.698382]  [000000000044f0e4] __call_console_drivers+0x84/0xa0
[13027.698404]  [000000000044f2f0] _call_console_drivers+0x70/0xc0
[13027.698426]  [000000000044f6ec] console_unlock+0x1cc/0x320
[13027.698446]  [000000000044fb14] vprintk+0x2d4/0x4c0
[13027.698475]  [000000000071f02c] printk+0x24/0x38
[13027.698495]  [0000000000488458] lockdep_rcu_suspicious+0x18/0xe0
[13027.698523]  [000000000066aea4] __netif_receive_skb+0x344/0x9e0
[13027.698545]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13027.698574]  [00000000006364e0] tulip_poll+0x380/0x640
[13027.698598]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13027.698613] ---[ end trace 3f96d049322e2aa3 ]---
[13027.698627] ------------[ cut here ]------------
[13027.698650] WARNING: at include/linux/rcupdate.h:248 __atomic_notifier_call_chain+0xd0/0x100()
[13027.698666] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13027.698710] Call Trace:
[13027.698729]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13027.698750]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13027.698771]  [0000000000473e10] __atomic_notifier_call_chain+0xd0/0x100
[13027.698792]  [0000000000473e54] atomic_notifier_call_chain+0x14/0x40
[13027.698816]  [00000000005eeb58] notify_write+0x18/0x40
[13027.698836]  [00000000005f213c] vt_console_print+0x17c/0x3e0
[13027.698857]  [000000000044f0e4] __call_console_drivers+0x84/0xa0
[13027.698879]  [000000000044f2f0] _call_console_drivers+0x70/0xc0
[13027.698901]  [000000000044f6ec] console_unlock+0x1cc/0x320
[13027.698921]  [000000000044fb14] vprintk+0x2d4/0x4c0
[13027.698943]  [000000000071f02c] printk+0x24/0x38
[13027.698961]  [0000000000488458] lockdep_rcu_suspicious+0x18/0xe0
[13027.698984]  [000000000066aea4] __netif_receive_skb+0x344/0x9e0
[13027.699005]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13027.699028]  [00000000006364e0] tulip_poll+0x380/0x640
[13027.699049]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13027.699063] ---[ end trace 3f96d049322e2aa4 ]---
[13030.823527] ===============================
[13030.878492] [ INFO: suspicious RCU usage. ]
[13030.933463] 3.3.0 #34 Tainted: G        W   
[13030.989571] -------------------------------
[13031.044542] include/linux/netpoll.h:70 suspicious rcu_dereference_check() usage!
[13031.141822] 
[13031.141829] other info that might help us debug this:
[13031.141838] 
[13031.247042] 
[13031.247048] rcu_scheduler_active = 1, debug_locks = 0
[13031.332879] RCU used illegally from extended quiescent state!
[13031.408423] no locks held by swapper/0.
[13031.458809] 
[13031.458815] stack backtrace:
[13031.516058] Call Trace:
[13031.548171]  [00000000004884f4] lockdep_rcu_suspicious+0xb4/0xe0
[13031.627155]  [000000000066aea4] __netif_receive_skb+0x344/0x9e0
[13031.704979]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13031.778233]  [00000000006364e0] tulip_poll+0x380/0x640
[13031.845771]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13031.916744]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13031.985427]  [000000000042b1c4] do_softirq+0x84/0xc0
[13032.050676]  [0000000000404a40] __handle_softirq+0x0/0x10
[13032.121651]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13032.194899]  [000000000042b688] cpu_idle+0x48/0x100
[13032.259004]  [00000000007149a0] rest_init+0x128/0x148
[13032.325401]  [00000000008ae794] start_kernel+0x328/0x338
[13032.395227]  [0000000000714870] tlb_fixup_done+0x88/0x90
[13032.465048]  [0000000000000000]           (null)
[13032.525811] ------------[ cut here ]------------
[13032.586439] WARNING: at include/linux/rcupdate.h:242 __netif_receive_skb+0x9ac/0x9e0()
[13032.690570] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13032.801579] Call Trace:
[13032.833619]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13032.910318]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13032.984713]  [000000000066b50c] __netif_receive_skb+0x9ac/0x9e0
[13033.062540]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13033.135795]  [00000000006364e0] tulip_poll+0x380/0x640
[13033.203331]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13033.274299]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13033.342981]  [000000000042b1c4] do_softirq+0x84/0xc0
[13033.408231]  [0000000000404a40] __handle_softirq+0x0/0x10
[13033.479204]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13033.552454]  [000000000042b688] cpu_idle+0x48/0x100
[13033.616564]  [00000000007149a0] rest_init+0x128/0x148
[13033.682961]  [00000000008ae794] start_kernel+0x328/0x338
[13033.752786]  [0000000000714870] tlb_fixup_done+0x88/0x90
[13033.822606]  [0000000000000000]           (null)
[13033.883282] ---[ end trace 3f96d049322e2aa5 ]---
[13033.943971] ------------[ cut here ]------------
[13034.004666] WARNING: at include/linux/rcupdate.h:242 ip_route_input_common+0xf7c/0x1060()
[13034.112217] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13034.223228] Call Trace:
[13034.255269]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13034.331963]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13034.406363]  [00000000006a0fdc] ip_route_input_common+0xf7c/0x1060
[13034.487623]  [00000000006d645c] arp_process+0x41c/0x820
[13034.556294]  [00000000006d694c] arp_rcv+0xec/0x180
[13034.619261]  [000000000066b384] __netif_receive_skb+0x824/0x9e0
[13034.697092]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13034.770346]  [00000000006364e0] tulip_poll+0x380/0x640
[13034.837882]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13034.908854]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13034.977534]  [000000000042b1c4] do_softirq+0x84/0xc0
[13035.042783]  [0000000000404a40] __handle_softirq+0x0/0x10
[13035.113760]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13035.187007]  [000000000042b688] cpu_idle+0x48/0x100
[13035.251118]  [00000000007149a0] rest_init+0x128/0x148
[13035.317509]  [00000000008ae794] start_kernel+0x328/0x338
[13035.387335] ---[ end trace 3f96d049322e2aa6 ]---
[13035.448015] ------------[ cut here ]------------
[13035.508701] WARNING: at include/linux/rcupdate.h:242 fib_table_lookup+0x580/0x5e0()
[13035.609406] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13035.720415] Call Trace:
[13035.752457]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13035.829153]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13035.903552]  [00000000006ee620] fib_table_lookup+0x580/0x5e0
[13035.977947]  [00000000006a0188] ip_route_input_common+0x128/0x1060
[13036.059205]  [00000000006d645c] arp_process+0x41c/0x820
[13036.127881]  [00000000006d694c] arp_rcv+0xec/0x180
[13036.190850]  [000000000066b384] __netif_receive_skb+0x824/0x9e0
[13036.268677]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13036.341932]  [00000000006364e0] tulip_poll+0x380/0x640
[13036.409467]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13036.480437]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13036.549119]  [000000000042b1c4] do_softirq+0x84/0xc0
[13036.614370]  [0000000000404a40] __handle_softirq+0x0/0x10
[13036.685340]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13036.758595]  [000000000042b688] cpu_idle+0x48/0x100
[13036.822703]  [00000000007149a0] rest_init+0x128/0x148
[13036.889098] ---[ end trace 3f96d049322e2aa7 ]---
[13036.949773] ------------[ cut here ]------------
[13037.010462] WARNING: at include/linux/rcupdate.h:248 fib_table_lookup+0x5c0/0x5e0()
[13037.111164] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13037.222174] Call Trace:
[13037.254215]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13037.330916]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13037.405306]  [00000000006ee660] fib_table_lookup+0x5c0/0x5e0
[13037.479711]  [00000000006a0188] ip_route_input_common+0x128/0x1060
[13037.560963]  [00000000006d645c] arp_process+0x41c/0x820
[13037.629643]  [00000000006d694c] arp_rcv+0xec/0x180
[13037.692606]  [000000000066b384] __netif_receive_skb+0x824/0x9e0
[13037.770440]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13037.843690]  [00000000006364e0] tulip_poll+0x380/0x640
[13037.911236]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13037.982197]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13038.050881]  [000000000042b1c4] do_softirq+0x84/0xc0
[13038.116128]  [0000000000404a40] __handle_softirq+0x0/0x10
[13038.187103]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13038.260353]  [000000000042b688] cpu_idle+0x48/0x100
[13038.324463]  [00000000007149a0] rest_init+0x128/0x148
[13038.390852] ---[ end trace 3f96d049322e2aa8 ]---
[13038.451534] ------------[ cut here ]------------
[13038.512224] WARNING: at include/linux/rcupdate.h:248 ip_route_input_common+0xfa8/0x1060()
[13038.619785] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13038.730793] Call Trace:
[13038.762833]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13038.839530]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13038.913933]  [00000000006a1008] ip_route_input_common+0xfa8/0x1060
[13038.995181]  [00000000006d645c] arp_process+0x41c/0x820
[13039.063865]  [00000000006d694c] arp_rcv+0xec/0x180
[13039.126829]  [000000000066b384] __netif_receive_skb+0x824/0x9e0
[13039.204655]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13039.277910]  [00000000006364e0] tulip_poll+0x380/0x640
[13039.345447]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13039.416414]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13039.485097]  [000000000042b1c4] do_softirq+0x84/0xc0
[13039.550348]  [0000000000404a40] __handle_softirq+0x0/0x10
[13039.621320]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13039.694574]  [000000000042b688] cpu_idle+0x48/0x100
[13039.758680]  [00000000007149a0] rest_init+0x128/0x148
[13039.825078]  [00000000008ae794] start_kernel+0x328/0x338
[13039.894900] ---[ end trace 3f96d049322e2aa9 ]---
[13039.955578] ------------[ cut here ]------------
[13040.016273] WARNING: at include/linux/rcupdate.h:242 neigh_lookup+0x2b4/0x320()
[13040.112399] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13040.223426] Call Trace:
[13040.255555]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13040.332249]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13040.406646]  [000000000067a0b4] neigh_lookup+0x2b4/0x320
[13040.476471]  [00000000006d633c] arp_process+0x2fc/0x820
[13040.545153]  [00000000006d694c] arp_rcv+0xec/0x180
[13040.608118]  [000000000066b384] __netif_receive_skb+0x824/0x9e0
[13040.685945]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13040.759201]  [00000000006364e0] tulip_poll+0x380/0x640
[13040.826741]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13040.897712]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13040.966389]  [000000000042b1c4] do_softirq+0x84/0xc0
[13041.031643]  [0000000000404a40] __handle_softirq+0x0/0x10
[13041.102610]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13041.175865]  [000000000042b688] cpu_idle+0x48/0x100
[13041.239972]  [00000000007149a0] rest_init+0x128/0x148
[13041.306367]  [00000000008ae794] start_kernel+0x328/0x338
[13041.376190] ---[ end trace 3f96d049322e2aaa ]---
[13041.436867] ------------[ cut here ]------------
[13041.497559] WARNING: at include/linux/rcupdate.h:248 neigh_lookup+0x2e8/0x320()
[13041.593690] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13041.704700] Call Trace:
[13041.736740]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13041.813434]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13041.887835]  [000000000067a0e8] neigh_lookup+0x2e8/0x320
[13041.957655]  [00000000006d633c] arp_process+0x2fc/0x820
[13042.026339]  [00000000006d694c] arp_rcv+0xec/0x180
[13042.089304]  [000000000066b384] __netif_receive_skb+0x824/0x9e0
[13042.167135]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13042.240388]  [00000000006364e0] tulip_poll+0x380/0x640
[13042.307926]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13042.378893]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13042.447577]  [000000000042b1c4] do_softirq+0x84/0xc0
[13042.512827]  [0000000000404a40] __handle_softirq+0x0/0x10
[13042.583798]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13042.657050]  [000000000042b688] cpu_idle+0x48/0x100
[13042.721161]  [00000000007149a0] rest_init+0x128/0x148
[13042.787555]  [00000000008ae794] start_kernel+0x328/0x338
[13042.857377] ---[ end trace 3f96d049322e2aab ]---
[13042.918064] ------------[ cut here ]------------
[13042.978744] WARNING: at include/linux/rcupdate.h:248 __netif_receive_skb+0x980/0x9e0()
[13043.082881] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13043.193888] Call Trace:
[13043.225927]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13043.302624]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13043.377022]  [000000000066b4e0] __netif_receive_skb+0x980/0x9e0
[13043.454848]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13043.528100]  [00000000006364e0] tulip_poll+0x380/0x640
[13043.595637]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13043.666607]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13043.735287]  [000000000042b1c4] do_softirq+0x84/0xc0
[13043.800538]  [0000000000404a40] __handle_softirq+0x0/0x10
[13043.871512]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13043.944769]  [000000000042b688] cpu_idle+0x48/0x100
[13044.008870]  [00000000007149a0] rest_init+0x128/0x148
[13044.075268]  [00000000008ae794] start_kernel+0x328/0x338
[13044.145093]  [0000000000714870] tlb_fixup_done+0x88/0x90
[13044.214911]  [0000000000000000]           (null)
[13044.275594] ---[ end trace 3f96d049322e2aac ]---
[13044.336386] ------------[ cut here ]------------
[13044.397079] WARNING: at include/linux/rcupdate.h:242 ip_local_deliver_finish+0x4b4/0x4e0()
[13044.505777] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13044.616782] Call Trace:
[13044.648823]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13044.725519]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13044.799928]  [00000000006a47f4] ip_local_deliver_finish+0x4b4/0x4e0
[13044.882320]  [00000000006a4ab0] ip_local_deliver+0x30/0xa0
[13044.954426]  [00000000006a3df4] ip_rcv_finish+0x174/0x6c0
[13045.025391]  [00000000006a4cd8] ip_rcv+0x1b8/0x2e0
[13045.088357]  [000000000066b384] __netif_receive_skb+0x824/0x9e0
[13045.166186]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13045.239442]  [00000000006364e0] tulip_poll+0x380/0x640
[13045.306978]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13045.377947]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13045.446629]  [000000000042b1c4] do_softirq+0x84/0xc0
[13045.511881]  [0000000000404a40] __handle_softirq+0x0/0x10
[13045.582850]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13045.656102]  [000000000042b688] cpu_idle+0x48/0x100
[13045.720210]  [00000000007149a0] rest_init+0x128/0x148
[13045.786601] ---[ end trace 3f96d049322e2aad ]---
[13045.847290] ------------[ cut here ]------------
[13045.907983] WARNING: at include/linux/rcupdate.h:248 ip_local_deliver_finish+0x488/0x4e0()
[13046.016680] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13046.127686] Call Trace:
[13046.159727]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13046.236421]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13046.310820]  [00000000006a47c8] ip_local_deliver_finish+0x488/0x4e0
[13046.393219]  [00000000006a4ab0] ip_local_deliver+0x30/0xa0
[13046.465330]  [00000000006a3df4] ip_rcv_finish+0x174/0x6c0
[13046.536295]  [00000000006a4cd8] ip_rcv+0x1b8/0x2e0
[13046.599260]  [000000000066b384] __netif_receive_skb+0x824/0x9e0
[13046.677089]  [000000000066b6ec] netif_receive_skb+0x4c/0x60
[13046.750346]  [00000000006364e0] tulip_poll+0x380/0x640
[13046.817881]  [000000000066eab8] net_rx_action+0x118/0x1e0
[13046.888856]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13046.957531]  [000000000042b1c4] do_softirq+0x84/0xc0
[13047.022782]  [0000000000404a40] __handle_softirq+0x0/0x10
[13047.093758]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13047.167007]  [000000000042b688] cpu_idle+0x48/0x100
[13047.231115]  [00000000007149a0] rest_init+0x128/0x148
[13047.297503] ---[ end trace 3f96d049322e2aae ]---
[13047.358514] ------------[ cut here ]------------
[13047.419319] WARNING: at include/linux/rcupdate.h:242 addrconf_verify+0x55c/0x5a0 [ipv6]()
[13047.526861] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13047.637860] Call Trace:
[13047.669909]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13047.746602]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13047.821047]  [00000000100b615c] addrconf_verify+0x55c/0x5a0 [ipv6]
[13047.902267]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[13047.977793]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13048.046470]  [000000000042b1c4] do_softirq+0x84/0xc0
[13048.111724]  [0000000000404a40] __handle_softirq+0x0/0x10
[13048.182694]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13048.255945]  [000000000042b688] cpu_idle+0x48/0x100
[13048.320052]  [00000000007149a0] rest_init+0x128/0x148
[13048.386452]  [00000000008ae794] start_kernel+0x328/0x338
[13048.456277]  [0000000000714870] tlb_fixup_done+0x88/0x90
[13048.526096]  [0000000000000000]           (null)
[13048.586774] ---[ end trace 3f96d049322e2aaf ]---
[13048.647462] ------------[ cut here ]------------
[13048.708201] WARNING: at include/linux/rcupdate.h:248 addrconf_verify+0x588/0x5a0 [ipv6]()
[13048.815714] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[13048.926717] Call Trace:
[13048.958762]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[13049.035455]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[13049.109897]  [00000000100b6188] addrconf_verify+0x588/0x5a0 [ipv6]
[13049.191113]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[13049.266647]  [0000000000455d1c] __do_softirq+0x9c/0x140
[13049.335329]  [000000000042b1c4] do_softirq+0x84/0xc0
[13049.400578]  [0000000000404a40] __handle_softirq+0x0/0x10
[13049.471551]  [0000000000439304] touch_nmi_watchdog+0x4/0x40
[13049.544803]  [000000000042b688] cpu_idle+0x48/0x100
[13049.608910]  [00000000007149a0] rest_init+0x128/0x148
[13049.675307]  [00000000008ae794] start_kernel+0x328/0x338
[13049.745133]  [0000000000714870] tlb_fixup_done+0x88/0x90
[13049.814952]  [0000000000000000]           (null)
[13049.875630] ---[ end trace 3f96d049322e2ab0 ]---
[183002.206660] ------------[ cut here ]------------
[183002.268724] WARNING: at include/linux/rcupdate.h:242 igmp6_send+0x840/0x960 [ipv6]()
[183002.371733] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183002.483876] Call Trace:
[183002.517076]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183002.594902]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183002.670508]  [00000000100d4d20] igmp6_send+0x840/0x960 [ipv6]
[183002.747287]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183002.832047]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183002.908700]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183002.978522]  [000000000042b1c4] do_softirq+0x84/0xc0
[183003.044918]  [0000000000404a40] __handle_softirq+0x0/0x10
[183003.117030]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183003.199427]  [000000000042b688] cpu_idle+0x48/0x100
[183003.264680]  [00000000007149a0] rest_init+0x128/0x148
[183003.332217]  [00000000008ae794] start_kernel+0x328/0x338
[183003.403184]  [0000000000714870] tlb_fixup_done+0x88/0x90
[183003.474147]  [0000000000000000]           (null)
[183003.535970] ---[ end trace 3f96d049322e2ab1 ]---
[183003.597794] ------------[ cut here ]------------
[183003.659686] WARNING: at include/linux/rcupdate.h:248 igmp6_send+0x86c/0x960 [ipv6]()
[183003.762719] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183003.874873] Call Trace:
[183003.908058]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183003.985895]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183004.061493]  [00000000100d4d4c] igmp6_send+0x86c/0x960 [ipv6]
[183004.138278]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183004.223025]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183004.299695]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183004.369517]  [000000000042b1c4] do_softirq+0x84/0xc0
[183004.435909]  [0000000000404a40] __handle_softirq+0x0/0x10
[183004.508022]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183004.590426]  [000000000042b688] cpu_idle+0x48/0x100
[183004.655669]  [00000000007149a0] rest_init+0x128/0x148
[183004.723211]  [00000000008ae794] start_kernel+0x328/0x338
[183004.794180]  [0000000000714870] tlb_fixup_done+0x88/0x90
[183004.865144]  [0000000000000000]           (null)
[183004.926961] ---[ end trace 3f96d049322e2ab2 ]---
[183004.988803] ------------[ cut here ]------------
[183005.050679] WARNING: at include/linux/rcupdate.h:242 icmp6_dst_alloc+0x328/0x360 [ipv6]()
[183005.159448] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183005.271581] Call Trace:
[183005.304768]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183005.382607]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183005.458198]  [00000000100bd9e8] icmp6_dst_alloc+0x328/0x360 [ipv6]
[183005.540604]  [00000000100d4828] igmp6_send+0x348/0x960 [ipv6]
[183005.617394]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183005.702126]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183005.778800]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183005.848625]  [000000000042b1c4] do_softirq+0x84/0xc0
[183005.915019]  [0000000000404a40] __handle_softirq+0x0/0x10
[183005.987135]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183006.069532]  [000000000042b688] cpu_idle+0x48/0x100
[183006.134778]  [00000000007149a0] rest_init+0x128/0x148
[183006.202317]  [00000000008ae794] start_kernel+0x328/0x338
[183006.273288]  [0000000000714870] tlb_fixup_done+0x88/0x90
[183006.344251]  [0000000000000000]           (null)
[183006.406072] ---[ end trace 3f96d049322e2ab3 ]---
[183006.467894] ------------[ cut here ]------------
[183006.529785] WARNING: at include/linux/rcupdate.h:248 icmp6_dst_alloc+0x2e8/0x360 [ipv6]()
[183006.638541] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183006.750690] Call Trace:
[183006.783877]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183006.861712]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183006.937306]  [00000000100bd9a8] icmp6_dst_alloc+0x2e8/0x360 [ipv6]
[183007.019718]  [00000000100d4828] igmp6_send+0x348/0x960 [ipv6]
[183007.096499]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183007.181233]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183007.257908]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183007.327732]  [000000000042b1c4] do_softirq+0x84/0xc0
[183007.394126]  [0000000000404a40] __handle_softirq+0x0/0x10
[183007.466238]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183007.548639]  [000000000042b688] cpu_idle+0x48/0x100
[183007.613887]  [00000000007149a0] rest_init+0x128/0x148
[183007.681426]  [00000000008ae794] start_kernel+0x328/0x338
[183007.752395]  [0000000000714870] tlb_fixup_done+0x88/0x90
[183007.823358]  [0000000000000000]           (null)
[183007.885179] ---[ end trace 3f96d049322e2ab4 ]---
[183007.947031] ------------[ cut here ]------------
[183008.008897] WARNING: at include/linux/rcupdate.h:242 ndisc_constructor+0x29c/0x2e0 [ipv6]()
[183008.119935] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183008.232083] Call Trace:
[183008.265272]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183008.343108]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183008.418703]  [00000000100c5cbc] ndisc_constructor+0x29c/0x2e0 [ipv6]
[183008.503342]  [000000000067be78] neigh_create+0x1d8/0xaa0
[183008.574345]  [00000000100ba014] ip6_neigh_lookup+0x2d4/0x360 [ipv6]
[183008.657894]  [00000000100bd904] icmp6_dst_alloc+0x244/0x360 [ipv6]
[183008.740300]  [00000000100d4828] igmp6_send+0x348/0x960 [ipv6]
[183008.817087]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183008.901819]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183008.978502]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183009.048319]  [000000000042b1c4] do_softirq+0x84/0xc0
[183009.114713]  [0000000000404a40] __handle_softirq+0x0/0x10
[183009.186832]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183009.269227]  [000000000042b688] cpu_idle+0x48/0x100
[183009.334475]  [00000000007149a0] rest_init+0x128/0x148
[183009.402015]  [00000000008ae794] start_kernel+0x328/0x338
[183009.472979] ---[ end trace 3f96d049322e2ab5 ]---
[183009.534797] ------------[ cut here ]------------
[183009.596689] WARNING: at include/linux/rcupdate.h:248 ndisc_constructor+0x2c8/0x2e0 [ipv6]()
[183009.707731] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183009.819878] Call Trace:
[183009.853066]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183009.930903]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183010.006499]  [00000000100c5ce8] ndisc_constructor+0x2c8/0x2e0 [ipv6]
[183010.091233]  [000000000067be78] neigh_create+0x1d8/0xaa0
[183010.162246]  [00000000100ba014] ip6_neigh_lookup+0x2d4/0x360 [ipv6]
[183010.245791]  [00000000100bd904] icmp6_dst_alloc+0x244/0x360 [ipv6]
[183010.328199]  [00000000100d4828] igmp6_send+0x348/0x960 [ipv6]
[183010.404984]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183010.489717]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183010.566393]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183010.636218]  [000000000042b1c4] do_softirq+0x84/0xc0
[183010.702613]  [0000000000404a40] __handle_softirq+0x0/0x10
[183010.774723]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183010.857137]  [000000000042b688] cpu_idle+0x48/0x100
[183010.922372]  [00000000007149a0] rest_init+0x128/0x148
[183010.989916]  [00000000008ae794] start_kernel+0x328/0x338
[183011.060875] ---[ end trace 3f96d049322e2ab6 ]---
[183011.122707] ------------[ cut here ]------------
[183011.184541] WARNING: at include/linux/rcupdate.h:242 inet_getpeer+0xb98/0xbc0()
[183011.281804] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183011.393973] Call Trace:
[183011.427248]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183011.505085]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183011.580625]  [00000000006a3a18] inet_getpeer+0xb98/0xbc0
[183011.651648]  [00000000100bcdd0] rt6_bind_peer+0x30/0x80 [ipv6]
[183011.729474]  [00000000100bce90] ipv6_cow_metrics+0x70/0xa0 [ipv6]
[183011.810831]  [00000000100bd87c] icmp6_dst_alloc+0x1bc/0x360 [ipv6]
[183011.893238]  [00000000100d4828] igmp6_send+0x348/0x960 [ipv6]
[183011.970028]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183012.054757]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183012.131433]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183012.201258]  [000000000042b1c4] do_softirq+0x84/0xc0
[183012.267650]  [0000000000404a40] __handle_softirq+0x0/0x10
[183012.339766]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183012.422164]  [000000000042b688] cpu_idle+0x48/0x100
[183012.487412]  [00000000007149a0] rest_init+0x128/0x148
[183012.554952]  [00000000008ae794] start_kernel+0x328/0x338
[183012.625916] ---[ end trace 3f96d049322e2ab7 ]---
[183012.687737] ------------[ cut here ]------------
[183012.749571] WARNING: at include/linux/rcupdate.h:248 inet_getpeer+0xb34/0xbc0()
[183012.846842] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183012.958998] Call Trace:
[183012.992183]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183013.070022]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183013.145566]  [00000000006a39b4] inet_getpeer+0xb34/0xbc0
[183013.216580]  [00000000100bcdd0] rt6_bind_peer+0x30/0x80 [ipv6]
[183013.294408]  [00000000100bce90] ipv6_cow_metrics+0x70/0xa0 [ipv6]
[183013.375662]  [00000000100bd87c] icmp6_dst_alloc+0x1bc/0x360 [ipv6]
[183013.458070]  [00000000100d4828] igmp6_send+0x348/0x960 [ipv6]
[183013.534855]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183013.619590]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183013.696266]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183013.766090]  [000000000042b1c4] do_softirq+0x84/0xc0
[183013.832484]  [0000000000404a40] __handle_softirq+0x0/0x10
[183013.904596]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183013.986999]  [000000000042b688] cpu_idle+0x48/0x100
[183014.052244]  [00000000007149a0] rest_init+0x128/0x148
[183014.119786]  [00000000008ae794] start_kernel+0x328/0x338
[183014.190750] ---[ end trace 3f96d049322e2ab8 ]---
[183014.252581] ------------[ cut here ]------------
[183014.314406] WARNING: at include/linux/rcupdate.h:242 fib_rules_lookup+0x340/0x380()
[183014.416249] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183014.528402] Call Trace:
[183014.561588]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183014.639426]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183014.714965]  [0000000000687ae0] fib_rules_lookup+0x340/0x380
[183014.790576]  [00000000100e5bc4] ip6mr_fib_lookup+0x24/0x60 [ipv6]
[183014.871932]  [00000000100e7968] mroute6_socket+0x48/0x80 [ipv6]
[183014.950988]  [00000000100aa45c] ip6_finish_output2+0x21c/0x600 [ipv6]
[183015.036811]  [00000000100ad128] ip6_finish_output+0xc8/0x260 [ipv6]
[183015.120353]  [00000000100ad314] ip6_output+0x54/0x220 [ipv6]
[183015.195904]  [00000000100d4864] igmp6_send+0x384/0x960 [ipv6]
[183015.272693]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183015.357426]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183015.434102]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183015.503925]  [000000000042b1c4] do_softirq+0x84/0xc0
[183015.570320]  [0000000000404a40] __handle_softirq+0x0/0x10
[183015.642433]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183015.724830]  [000000000042b688] cpu_idle+0x48/0x100
[183015.790074] ---[ end trace 3f96d049322e2ab9 ]---
[183015.851899] ------------[ cut here ]------------
[183015.913733] WARNING: at include/linux/rcupdate.h:248 fib_rules_lookup+0x36c/0x380()
[183016.015580] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183016.127730] Call Trace:
[183016.160917]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183016.238754]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183016.314291]  [0000000000687b0c] fib_rules_lookup+0x36c/0x380
[183016.389900]  [00000000100e5bc4] ip6mr_fib_lookup+0x24/0x60 [ipv6]
[183016.471258]  [00000000100e7968] mroute6_socket+0x48/0x80 [ipv6]
[183016.550305]  [00000000100aa45c] ip6_finish_output2+0x21c/0x600 [ipv6]
[183016.636137]  [00000000100ad128] ip6_finish_output+0xc8/0x260 [ipv6]
[183016.719676]  [00000000100ad314] ip6_output+0x54/0x220 [ipv6]
[183016.795230]  [00000000100d4864] igmp6_send+0x384/0x960 [ipv6]
[183016.872016]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183016.956756]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183017.033426]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183017.103252]  [000000000042b1c4] do_softirq+0x84/0xc0
[183017.169652]  [0000000000404a40] __handle_softirq+0x0/0x10
[183017.241761]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183017.324161]  [000000000042b688] cpu_idle+0x48/0x100
[183017.389401] ---[ end trace 3f96d049322e2aba ]---
[183017.451241] ------------[ cut here ]------------
[183017.513106] WARNING: at include/linux/rcupdate.h:242 ip6_finish_output2+0x5c0/0x600 [ipv6]()
[183017.625193] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183017.737344] Call Trace:
[183017.770531]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183017.848369]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183017.923951]  [00000000100aa800] ip6_finish_output2+0x5c0/0x600 [ipv6]
[183018.009785]  [00000000100ad128] ip6_finish_output+0xc8/0x260 [ipv6]
[183018.093323]  [00000000100ad314] ip6_output+0x54/0x220 [ipv6]
[183018.168875]  [00000000100d4864] igmp6_send+0x384/0x960 [ipv6]
[183018.245663]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183018.330394]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183018.407073]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183018.476896]  [000000000042b1c4] do_softirq+0x84/0xc0
[183018.543291]  [0000000000404a40] __handle_softirq+0x0/0x10
[183018.615402]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183018.697804]  [000000000042b688] cpu_idle+0x48/0x100
[183018.763051]  [00000000007149a0] rest_init+0x128/0x148
[183018.830590]  [00000000008ae794] start_kernel+0x328/0x338
[183018.901561]  [0000000000714870] tlb_fixup_done+0x88/0x90
[183018.972528] ---[ end trace 3f96d049322e2abb ]---
[183019.034356] ------------[ cut here ]------------
[183019.096192] WARNING: at include/linux/rcupdate.h:242 sock_def_write_space+0x1a0/0x1e0()
[183019.202599] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183019.314748] Call Trace:
[183019.347934]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183019.425773]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183019.501312]  [000000000065ba40] sock_def_write_space+0x1a0/0x1e0
[183019.581426]  [000000000065c840] sock_wfree+0x60/0x80
[183019.647835]  [0000000000670724] dev_hard_start_xmit+0x204/0x780
[183019.726793]  [000000000068b7fc] sch_direct_xmit+0x9c/0x2c0
[183019.800041]  [0000000000670fcc] dev_queue_xmit+0x32c/0xa40
[183019.873300]  [000000000067af68] neigh_resolve_output+0x108/0x240
[183019.953460]  [00000000100aa318] ip6_finish_output2+0xd8/0x600 [ipv6]
[183020.038139]  [00000000100ad128] ip6_finish_output+0xc8/0x260 [ipv6]
[183020.121675]  [00000000100ad314] ip6_output+0x54/0x220 [ipv6]
[183020.197232]  [00000000100d4864] igmp6_send+0x384/0x960 [ipv6]
[183020.274018]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183020.358755]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183020.435428]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183020.505253]  [000000000042b1c4] do_softirq+0x84/0xc0
[183020.571640] ---[ end trace 3f96d049322e2abc ]---
[183020.633466] ------------[ cut here ]------------
[183020.695299] WARNING: at include/linux/rcupdate.h:248 sock_def_write_space+0x1cc/0x1e0()
[183020.801718] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183020.913869] Call Trace:
[183020.947058]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183021.024893]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183021.100430]  [000000000065ba6c] sock_def_write_space+0x1cc/0x1e0
[183021.180549]  [000000000065c840] sock_wfree+0x60/0x80
[183021.246939]  [0000000000670724] dev_hard_start_xmit+0x204/0x780
[183021.325910]  [000000000068b7fc] sch_direct_xmit+0x9c/0x2c0
[183021.399159]  [0000000000670fcc] dev_queue_xmit+0x32c/0xa40
[183021.472417]  [000000000067af68] neigh_resolve_output+0x108/0x240
[183021.552575]  [00000000100aa318] ip6_finish_output2+0xd8/0x600 [ipv6]
[183021.637261]  [00000000100ad128] ip6_finish_output+0xc8/0x260 [ipv6]
[183021.720797]  [00000000100ad314] ip6_output+0x54/0x220 [ipv6]
[183021.796354]  [00000000100d4864] igmp6_send+0x384/0x960 [ipv6]
[183021.873138]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183021.957879]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183022.034549]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183022.104373]  [000000000042b1c4] do_softirq+0x84/0xc0
[183022.170759] ---[ end trace 3f96d049322e2abd ]---
[183022.232599] ------------[ cut here ]------------
[183022.294487] WARNING: at include/linux/rcupdate.h:248 ip6_finish_output2+0x594/0x600 [ipv6]()
[183022.406662] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183022.518808] Call Trace:
[183022.551993]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183022.629831]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183022.705417]  [00000000100aa7d4] ip6_finish_output2+0x594/0x600 [ipv6]
[183022.791248]  [00000000100ad128] ip6_finish_output+0xc8/0x260 [ipv6]
[183022.874784]  [00000000100ad314] ip6_output+0x54/0x220 [ipv6]
[183022.950345]  [00000000100d4864] igmp6_send+0x384/0x960 [ipv6]
[183023.027126]  [00000000100d52d0] igmp6_timer_handler+0x90/0xe0 [ipv6]
[183023.111862]  [000000000045c328] run_timer_softirq+0x168/0x2c0
[183023.188536]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183023.258362]  [000000000042b1c4] do_softirq+0x84/0xc0
[183023.324752]  [0000000000404a40] __handle_softirq+0x0/0x10
[183023.396867]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183023.479267]  [000000000042b688] cpu_idle+0x48/0x100
[183023.544517]  [00000000007149a0] rest_init+0x128/0x148
[183023.612057]  [00000000008ae794] start_kernel+0x328/0x338
[183023.683023]  [0000000000714870] tlb_fixup_done+0x88/0x90
[183023.753987] ---[ end trace 3f96d049322e2abe ]---
[183023.816112] ------------[ cut here ]------------
[183023.877973] WARNING: at include/linux/rcupdate.h:242 ip_finish_output+0x6e8/0x760()
[183023.979805] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183024.091953] Call Trace:
[183024.125140]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183024.202976]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183024.278519]  [00000000006aa728] ip_finish_output+0x6e8/0x760
[183024.354054]  [00000000006ab604] ip_output+0x84/0x160
[183024.420447]  [00000000006aa970] ip_local_out+0x30/0xc0
[183024.489131]  [00000000006ac084] ip_send_skb+0x4/0x80
[183024.555526]  [00000000006ac120] ip_push_pending_frames+0x20/0x40
[183024.635645]  [00000000006d79e4] icmp_push_reply+0xe4/0x120
[183024.708895]  [00000000006d7ef0] icmp_reply+0x190/0x2a0
[183024.777576]  [00000000006d8660] icmp_echo.part.4+0x40/0x60
[183024.850832]  [00000000006d86ac] icmp_echo+0x2c/0xc0
[183024.916081]  [00000000006d93bc] icmp_rcv+0x39c/0x560
[183024.982488]  [00000000006a44f0] ip_local_deliver_finish+0x1b0/0x4e0
[183025.066027]  [00000000006a4ab0] ip_local_deliver+0x30/0xa0
[183025.139284]  [00000000006a3df4] ip_rcv_finish+0x174/0x6c0
[183025.211387]  [00000000006a4cd8] ip_rcv+0x1b8/0x2e0
[183025.275488] ---[ end trace 3f96d049322e2abf ]---
[183025.337324] ------------[ cut here ]------------
[183025.399164] WARNING: at include/linux/rcupdate.h:248 ip_finish_output+0x640/0x760()
[183025.500992] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183025.613142] Call Trace:
[183025.646326]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183025.724168]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183025.799710]  [00000000006aa680] ip_finish_output+0x640/0x760
[183025.875247]  [00000000006ab604] ip_output+0x84/0x160
[183025.941644]  [00000000006aa970] ip_local_out+0x30/0xc0
[183026.010320]  [00000000006ac084] ip_send_skb+0x4/0x80
[183026.076717]  [00000000006ac120] ip_push_pending_frames+0x20/0x40
[183026.156835]  [00000000006d79e4] icmp_push_reply+0xe4/0x120
[183026.230087]  [00000000006d7ef0] icmp_reply+0x190/0x2a0
[183026.298770]  [00000000006d8660] icmp_echo.part.4+0x40/0x60
[183026.372025]  [00000000006d86ac] icmp_echo+0x2c/0xc0
[183026.437272]  [00000000006d93bc] icmp_rcv+0x39c/0x560
[183026.503676]  [00000000006a44f0] ip_local_deliver_finish+0x1b0/0x4e0
[183026.587219]  [00000000006a4ab0] ip_local_deliver+0x30/0xa0
[183026.660471]  [00000000006a3df4] ip_rcv_finish+0x174/0x6c0
[183026.732581]  [00000000006a4cd8] ip_rcv+0x1b8/0x2e0
[183026.796678] ---[ end trace 3f96d049322e2ac0 ]---
[183026.859386] ------------[ cut here ]------------
[183026.921235] WARNING: at include/linux/rcupdate.h:242 ipv6_rcv+0x6bc/0x840 [ipv6]()
[183027.021983] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183027.134143] Call Trace:
[183027.167417]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183027.245254]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183027.320836]  [00000000100af91c] ipv6_rcv+0x6bc/0x840 [ipv6]
[183027.395195]  [000000000066b384] __netif_receive_skb+0x824/0x9e0
[183027.474159]  [000000000066b5bc] process_backlog+0x7c/0x160
[183027.547414]  [000000000066eab8] net_rx_action+0x118/0x1e0
[183027.619521]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183027.689350]  [000000000042b1c4] do_softirq+0x84/0xc0
[183027.755742]  [0000000000404a40] __handle_softirq+0x0/0x10
[183027.827854]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183027.910256]  [000000000042b688] cpu_idle+0x48/0x100
[183027.975509]  [00000000007149a0] rest_init+0x128/0x148
[183028.043041]  [00000000008ae794] start_kernel+0x328/0x338
[183028.114008]  [0000000000714870] tlb_fixup_done+0x88/0x90
[183028.184973]  [0000000000000000]           (null)
[183028.246795] ---[ end trace 3f96d049322e2ac1 ]---
[183028.308629] ------------[ cut here ]------------
[183028.370500] WARNING: at include/linux/rcupdate.h:248 ipv6_rcv+0x778/0x840 [ipv6]()
[183028.471156] Modules linked in: ipv6 fuse loop ohci_hcd usbcore sr_mod cdrom usb_common flash
[183028.583308] Call Trace:
[183028.616494]  [000000000044eee4] warn_slowpath_common+0x44/0x80
[183028.694332]  [000000000044ef34] warn_slowpath_null+0x14/0x40
[183028.769914]  [00000000100af9d8] ipv6_rcv+0x778/0x840 [ipv6]
[183028.844272]  [000000000066b384] __netif_receive_skb+0x824/0x9e0
[183028.923236]  [000000000066b5bc] process_backlog+0x7c/0x160
[183028.996497]  [000000000066eab8] net_rx_action+0x118/0x1e0
[183029.068601]  [0000000000455d1c] __do_softirq+0x9c/0x140
[183029.138430]  [000000000042b1c4] do_softirq+0x84/0xc0
[183029.204819]  [0000000000404a40] __handle_softirq+0x0/0x10
[183029.276932]  [000000000049b6a0] touch_softlockup_watchdog+0x0/0x20
[183029.359332]  [000000000042b688] cpu_idle+0x48/0x100
[183029.424582]  [00000000007149a0] rest_init+0x128/0x148
[183029.492119]  [00000000008ae794] start_kernel+0x328/0x338
[183029.563086]  [0000000000714870] tlb_fixup_done+0x88/0x90
[183029.634053]  [0000000000000000]           (null)
[183029.695875] ---[ end trace 3f96d049322e2ac2 ]---


-- 
Meelis Roos (mroos@linux.ee)

^ permalink raw reply

* Re: [PATCH v3 1/2] net/ipv4: fix IPv4 multicast over network namespaces
From: David Miller @ 2012-03-28  8:46 UTC (permalink / raw)
  To: bcrl; +Cc: netdev
In-Reply-To: <20120328015532.GA10832@kvack.org>

From: Benjamin LaHaise <bcrl@kvack.org>
Date: Tue, 27 Mar 2012 21:55:32 -0400

> When using multicast over a local bridge feeding a number of LXC guests
> using veth, the LXC guests are unable to get a response from other guests
> when pinging 224.0.0.1.  Multicast packets did not appear to be getting
> delivered to the network namespaces of the guest hosts, and further
> inspection showed that the incoming route was pointing to the loopback
> device of the host, not the guest.  This lead to the wrong network namespace
> being picked up by sockets (like ICMP).  Fix this by using the correct
> network namespace when creating the inbound route entry.
> 
> Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>

Applied.

^ permalink raw reply

* Re: [PATCH v3 2/2] net/core: dev_forward_skb() should clear skb_iif
From: David Miller @ 2012-03-28  8:46 UTC (permalink / raw)
  To: bcrl; +Cc: netdev
In-Reply-To: <20120328015544.GA11104@kvack.org>

From: Benjamin LaHaise <bcrl@kvack.org>
Date: Tue, 27 Mar 2012 21:55:44 -0400

> While investigating another bug, I found that the code on the incoming path
> in __netif_receive_skb will only set skb->skb_iif if it is already 0.  When
> dev_forward_skb() is used in the case of interfaces like veth, skb_iif may
> already have been set.  Making dev_forward_skb() cause the packet to look
> like a newly received packet would seem to the the correct behaviour here,
> as otherwise the wrong incoming interface can be reported for such a packet.
> 
> Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>

Applied.

^ permalink raw reply

* Re: [PATCH] rose_dev: fix memcpy-bug in rose_set_mac_address
From: Daniel Borkmann @ 2012-03-28  8:47 UTC (permalink / raw)
  To: David S. Miller; +Cc: Ralf Baechle, netdev@vger.kernel.org

David Miller <davem@davemloft.net> wrote:

>> This patch fixes a small bug in rose_set_mac_address. If the current and new
>> MAC addresses match, then nothing needs to be done. However memcpy was used
>> instead of memcmp for comparison.
>>
>> The patch is against the latest net-tree.
>>
>> Signed-off-by: Daniel Borkmann <daniel.borkmann@tik.ee.ethz.ch>
>
> You're breaking this code, not fixing it.
>
> If you don't keep the memcpy, then the calls right below which setup
> the loopback node will use the previous device address not the new
> one being configured.

David, thanks for your feedback! So here's a small rework of the patch:

If both addresses equal, nothing needs to be done. If the device is down,
then we simply copy the new address to dev->dev_addr. If the device is up,
then we add another loopback device with the new address, and if that does
not fail, we remove the loopback device with the old address. And only
then, we update the dev->dev_addr.

Signed-off-by: Daniel Borkmann <daniel.borkmann@tik.ee.ethz.ch>
---
 net/rose/rose_dev.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/rose/rose_dev.c b/net/rose/rose_dev.c
index 178ff4f..2679507 100644
--- a/net/rose/rose_dev.c
+++ b/net/rose/rose_dev.c
@@ -96,11 +96,11 @@ static int rose_set_mac_address(struct net_device *dev, void *addr)
 	struct sockaddr *sa = addr;
 	int err;
 
-	if (!memcpy(dev->dev_addr, sa->sa_data, dev->addr_len))
+	if (!memcmp(dev->dev_addr, sa->sa_data, dev->addr_len))
 		return 0;
 
 	if (dev->flags & IFF_UP) {
-		err = rose_add_loopback_node((rose_address *)dev->dev_addr);
+		err = rose_add_loopback_node((rose_address *)sa->sa_data);
 		if (err)
 			return err;
 

^ permalink raw reply related

* Re: [PATCH] f_phonet: fix skb truesize underestimation
From: Felipe Balbi @ 2012-03-28  8:55 UTC (permalink / raw)
  To: David Miller
  Cc: eric.dumazet, gregkh, linux-usb, netdev, balbi,
	remi.denis-courmont
In-Reply-To: <20120327.225109.752822925052179338.davem@davemloft.net>

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

On Tue, Mar 27, 2012 at 10:51:09PM -0400, David Miller wrote:
> From: Eric Dumazet <eric.dumazet@gmail.com>
> Date: Tue, 27 Mar 2012 06:04:02 -0700
> 
> > Now skb_add_rx_frag() has a truesize parameter, we can fix f_phonet to
> > properly account truesize of each fragment : a full page.
> > 
> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
> 
> Applied.

did you apply both patches ?

-- 
balbi

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

^ permalink raw reply

* Re: [PATCH] f_phonet: fix skb truesize underestimation
From: David Miller @ 2012-03-28  9:33 UTC (permalink / raw)
  To: balbi; +Cc: eric.dumazet, gregkh, linux-usb, netdev, remi.denis-courmont
In-Reply-To: <20120328085535.GF18156@arwen.pp.htv.fi>

From: Felipe Balbi <balbi@ti.com>
Date: Wed, 28 Mar 2012 11:55:36 +0300

> On Tue, Mar 27, 2012 at 10:51:09PM -0400, David Miller wrote:
>> From: Eric Dumazet <eric.dumazet@gmail.com>
>> Date: Tue, 27 Mar 2012 06:04:02 -0700
>> 
>> > Now skb_add_rx_frag() has a truesize parameter, we can fix f_phonet to
>> > properly account truesize of each fragment : a full page.
>> > 
>> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
>> 
>> Applied.
> 
> did you apply both patches ?

You never need to ask me these kinds of questions, you can
either check my GIT tree or look at:

http://patchwork.ozlabs.org/project/netdev/list/?state=3

^ permalink raw reply

* Re: [PATCH] net/ethernet: ks8851_mll fix rx frame buffer overflow
From: Davide Ciminaghi @ 2012-03-28 10:51 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Raffaele Recalcati, David S. Miller, Alexey Dobriyan,
	Thomas Meyer, Wan ZongShun, Lucas De Marchi, netdev
In-Reply-To: <1332920391.3547.46.camel@edumazet-glaptop>

On Wed, Mar 28, 2012 at 09:39:51AM +0200, Eric Dumazet wrote:
> On Wed, 2012-03-28 at 09:05 +0200, Raffaele Recalcati wrote:
> > Hi Eric,
> > 
> > On 07:39 Tue 27 Mar     , Eric Dumazet wrote:
> > > Le mardi 27 mars 2012 ?? 15:01 +0200, Davide Ciminaghi a ??crit :

...

> 
> So the limit should be 255, not 256.
> (0xFFFF >> 8 -> 0xFF)
> 
> ks->frame_cnt = ks_rdreg16(ks, KS_RXFCTR) >> 8;
> 
> I cant see how 256 can be stored in a 8bit field ?
>
you're right, we'll resend the patch with 255.
Well actually, since the chip appears to have 12K of internal rx buffers
and the shortest ethernet frame should be 64 bytes long, maybe the limit could
be set to 12*1024/64 = 192 frames, but I think 255 is safer.
 

Thanks and regards
Davide

^ permalink raw reply

* Re: [PATCH v2] net/garp: avoid infinite loop if attribute already exists
From: Jorge Boncompte [DTI2] @ 2012-03-28 11:28 UTC (permalink / raw)
  To: david.ward; +Cc: netdev, kaber
In-Reply-To: <1332874912-1979-1-git-send-email-david.ward@ll.mit.edu>

El 27/03/2012 21:01, David Ward escribió:
> An infinite loop occurred if garp_attr_create was called with the values
> of an existing attribute. This might happen if a previous leave request
> for the attribute has not yet been followed by a PDU transmission (or,
> if the application previously issued a join request for the attribute
> and is now issuing another one, without having issued a leave request).
> 
> If garp_attr_create finds an existing attribute having the same values,
> return the address to it. Its state will then get updated (i.e., if it
> was in a leaving state, it will move into a non-leaving state and not
> get deleted during the next PDU transmission).
> 
> To accomplish this fix, collapse garp_attr_insert into garp_attr_create
> (which is its only caller).
> 

	I wouldn't mind if you credited me given that your patch now is based on my fix
and analysis. ;-)

Anyway...

Acked-by: Jorge Boncompte [DTI2] <jorge@dti2.net>

^ permalink raw reply

* Re: [PATCH] f_phonet: fix skb truesize underestimation
From: Felipe Balbi @ 2012-03-28 12:43 UTC (permalink / raw)
  To: David Miller
  Cc: balbi-l0cyMroinI0, eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	linux-usb-u79uwXL29TY76Z2rM5mHXA, netdev-u79uwXL29TY76Z2rM5mHXA,
	remi.denis-courmont-xNZwKgViW5gAvxtiuMwx3w
In-Reply-To: <20120328.053310.219141897175161116.davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>

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

On Wed, Mar 28, 2012 at 05:33:10AM -0400, David Miller wrote:
> From: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
> Date: Wed, 28 Mar 2012 11:55:36 +0300
> 
> > On Tue, Mar 27, 2012 at 10:51:09PM -0400, David Miller wrote:
> >> From: Eric Dumazet <eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> >> Date: Tue, 27 Mar 2012 06:04:02 -0700
> >> 
> >> > Now skb_add_rx_frag() has a truesize parameter, we can fix f_phonet to
> >> > properly account truesize of each fragment : a full page.
> >> > 
> >> > Signed-off-by: Eric Dumazet <eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> >> 
> >> Applied.
> > 
> > did you apply both patches ?
> 
> You never need to ask me these kinds of questions, you can
> either check my GIT tree or look at:
> 
> http://patchwork.ozlabs.org/project/netdev/list/?state=3

I'm asking because drivers/usb/gadget/ should either go through me or
you should wait for my Acked-by. Now it's too late for that, but next
time for my Ack.

-- 
balbi

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

^ 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