Netdev List
 help / color / mirror / Atom feed
* Re: [PATCH] e1000, e1000e valid-addr fixes
From: Jeff Garzik @ 2007-11-01 18:47 UTC (permalink / raw)
  To: Kok, Auke; +Cc: David Miller, netdev, davej, ajax, linux-kernel
In-Reply-To: <472A1526.8070208@intel.com>

Kok, Auke wrote:
> David Miller wrote:
>> From: Jeff Garzik <jeff@garzik.org>
>> Date: Tue, 23 Oct 2007 22:20:30 -0400
>>
>>> David Miller wrote:
>>>> From: Jeff Garzik <jeff@garzik.org>
>>>> Date: Tue, 23 Oct 2007 21:03:36 -0400
>>>>
>>>>> I'm wondering if there is a way to avoid adding
>>>>>
>>>>> 	if (!is_valid_ether_addr(dev->dev_addr))
>>>>> 		return -EINVAL;
>>>>>
>>>>> to every ethernet driver's ->open() hook.
>>>> The first idea I get is:
>>>>
>>>> 1) Create netdev->validate_dev_addr().
>>>>
>>>> 2) If it exists, invoke it before ->open(), abort
>>>>    and return if any errors signaled.
>>>>
>>>> etherdev init hooks up a function that does the above
>>>> check, which allows us to avoid editing every ethernet
>>>> driver
>>>>
>>>> What do you think?
>>> Seems sane to me.  Something like this (attached)?
>> Looks great:
>>
>> Acked-by: David S. Miller <davem@davemloft.net>
> 
> I like it.
> 
> Should I start sending patches to remove the checks from e1000/e1000e/ixgb/ixgbe
> already (to David, I assume?)?

Send the patches to me like normal...

	Jeff




^ permalink raw reply

* Re: [PATCH] INET : removes per bucket rwlock in tcp/dccp ehash table
From: Rick Jones @ 2007-11-01 18:48 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Stephen Hemminger, David S. Miller, Linux Netdev List, Andi Kleen,
	Arnaldo Carvalho de Melo
In-Reply-To: <472A12D0.4070401@cosmosbay.com>

Eric Dumazet wrote:
> Stephen Hemminger a écrit :
> 
>> On Thu, 01 Nov 2007 11:16:20 +0100
>> Eric Dumazet <dada1@cosmosbay.com> wrote:
>>
>>> As done two years ago on IP route cache table (commit 
>>> 22c047ccbc68fa8f3fa57f0e8f906479a062c426) , we can avoid using one 
>>> lock per hash bucket for the huge TCP/DCCP hash tables.

The TCP hashes are looked at with higher frequency than the route cache yes?

>>> On a typical x86_64 platform, this saves about 2MB or 4MB of ram, for 
>>> litle performance differences. (we hit a different cache line for the 
>>> rwlock, but then the bucket cache line have a better sharing factor 
>>> among cpus, since we dirty it less often)
>>>
>>> Using a 'small' table of hashed rwlocks should be more than enough to 
>>> provide correct SMP concurrency between different buckets, without 
>>> using too much memory. Sizing of this table depends on NR_CPUS and 
>>> various CONFIG settings.

Something is telling me finding a 64 core system with a suitable workload to try 
this could be a good thing.  Wish I had one at my disposal.

rick jones

^ permalink raw reply

* Re: [PATCH] INET : removes per bucket rwlock in tcp/dccp ehash table
From: Eric Dumazet @ 2007-11-01 19:00 UTC (permalink / raw)
  To: Rick Jones
  Cc: Stephen Hemminger, David S. Miller, Linux Netdev List, Andi Kleen,
	Arnaldo Carvalho de Melo
In-Reply-To: <472A1F8A.2070708@hp.com>

Rick Jones a écrit :
> Eric Dumazet wrote:
>> Stephen Hemminger a écrit :
>>
>>> On Thu, 01 Nov 2007 11:16:20 +0100
>>> Eric Dumazet <dada1@cosmosbay.com> wrote:
>>>
>>>> As done two years ago on IP route cache table (commit 
>>>> 22c047ccbc68fa8f3fa57f0e8f906479a062c426) , we can avoid using one 
>>>> lock per hash bucket for the huge TCP/DCCP hash tables.
> 
> The TCP hashes are looked at with higher frequency than the route cache 
> yes?

It depends on the workload, but in general I would say the reverse.

> 
>>>> On a typical x86_64 platform, this saves about 2MB or 4MB of ram, 
>>>> for litle performance differences. (we hit a different cache line 
>>>> for the rwlock, but then the bucket cache line have a better sharing 
>>>> factor among cpus, since we dirty it less often)
>>>>
>>>> Using a 'small' table of hashed rwlocks should be more than enough 
>>>> to provide correct SMP concurrency between different buckets, 
>>>> without using too much memory. Sizing of this table depends on 
>>>> NR_CPUS and various CONFIG settings.
> 
> Something is telling me finding a 64 core system with a suitable 
> workload to try this could be a good thing.  Wish I had one at my disposal.

If you find one, please give it to me when you finished playing^Wworking with 
it :)



^ permalink raw reply

* Re: [Bugme-new] [Bug 9270] New: sunhme requires lower MTU to handle 802.1q frames
From: Andrew Morton @ 2007-11-01 19:12 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, bugme-daemon, dev-null, jeff
In-Reply-To: <20071031.163557.73546666.davem@davemloft.net>

On Wed, 31 Oct 2007 16:35:57 -0700 (PDT)
David Miller <davem@davemloft.net> wrote:

> From: Andrew Morton <akpm@linux-foundation.org>
> Date: Wed, 31 Oct 2007 15:43:01 -0700
> 
> > > sunhme requires lower MTU to handle 802.1q frames - even though the PCI
> > > driver supported VLAN tagging, you cannot do full MTU @ 1500 because the
> > > driver doesn't set the card to transfer more the extra bytes for a 802.1q
> > > frame at 1500 MTU.
> 
> It supports VLAN tagging by accident, the NETIF_F_VLAN_CHALLENGED
> flag should be set both in the PCI and non-PCI cases.
> 
> Jeff, please apply, thanks:
> 
> [SUNHME]: Fix missing NETIF_F_VLAN_CHALLENGED on PCI happy meals.
> 
> No HME parts can do VLANs correctly.
> 
> Signed-off-by: David S. Miller <davem@davemloft.net>
> 
> diff --git a/drivers/net/sunhme.c b/drivers/net/sunhme.c
> index 120c8af..c20a3bd 100644
> --- a/drivers/net/sunhme.c
> +++ b/drivers/net/sunhme.c
> @@ -3143,8 +3143,8 @@ static int __devinit happy_meal_pci_probe(struct pci_dev *pdev,
>  	dev->irq = pdev->irq;
>  	dev->dma = 0;
>  
> -	/* Happy Meal can do it all... */
> -	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
> +	/* Happy Meal can do it all... except VLAN. */
> +	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_VLAN_CHALLENGED;
>  
>  #if defined(CONFIG_SBUS) && defined(CONFIG_PCI)
>  	/* Hook up PCI register/dma accessors. */

I forgot to add my standard "please reply via emailed reply-to-all, not via
the bugzilla web interface", so Chris has gone and attempted to communicate
with us via the bugzilla UI (sigh).

He asked

"Even though it appears to work after I bumped the BMAC_TXMAX / BMAC_RXMAX?"



^ permalink raw reply

* Re: [PATCH] INET : removes per bucket rwlock in tcp/dccp ehash table
From: Eric Dumazet @ 2007-11-01 19:17 UTC (permalink / raw)
  To: Rick Jones
  Cc: Stephen Hemminger, David S. Miller, Linux Netdev List, Andi Kleen,
	Arnaldo Carvalho de Melo
In-Reply-To: <472A2251.4000701@cosmosbay.com>


> Rick Jones a écrit :
> Something is telling me finding a 64 core system with a suitable 
> workload to try this could be a good thing.  Wish I had one at my 
> disposal.

Maybe on big NUMA machines, we might prefer to spread the rwlock array on 
multiple nodes (ie using vmalloc() instead of kmalloc())

After my patch, it is true all rwlocks are on one memory node. Not exactly 
optimal :(

But if it was an issue, the spinlock array used in IP route cache would have 
the same problem and *someone* should already have complained...



^ permalink raw reply

* Re: [PATCH] e1000, e1000e valid-addr fixes
From: Jeff Garzik @ 2007-11-01 19:31 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: David Miller, netdev, davej, auke-jan.h.kok, ajax, linux-kernel
In-Reply-To: <20071101111157.7f3e4f58@freepuppy.rosehill>

Stephen Hemminger wrote:
> How about:
> 
> static int eth_validate_addr(const struct net_device *dev)
> {
> 	return is_valid_ether_addr(dev->dev_addr) ? 0 : -EINVAL;
> }

hmmm -- its a slow path, so I don't see the value of marking the 
argument 'const' -- right now this implementation merely reads the 
dev->dev_addr[], but that need not always be the case.

And I don't see the value of squashing everything onto one line, IMO the 
current version is more readable.

	Jeff




^ permalink raw reply

* [git patches] net driver fixes
From: Jeff Garzik @ 2007-11-01 20:05 UTC (permalink / raw)
  To: Andrew Morton, Linus Torvalds; +Cc: netdev, LKML


Please pull from 'upstream-linus' branch of
master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git upstream-linus

to receive the following updates:

 drivers/net/Kconfig             |    4 +---
 drivers/net/fec_mpc52xx.c       |    4 ++--
 drivers/net/myri10ge/myri10ge.c |    6 +++---
 3 files changed, 6 insertions(+), 8 deletions(-)

Andrew Gallatin (1):
      Fix myri10ge NAPI oops & warnings

Grant Likely (2):
      mpc5200: Fix Kconfig dependancies on MPC5200 FEC device driver
      Fix region size check in mpc5200 FEC driver

diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 867cb73..5f800a6 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -1883,9 +1883,7 @@ config FEC2
 
 config FEC_MPC52xx
 	tristate "MPC52xx FEC driver"
-	depends on PPC_MPC52xx
-	select PPC_BESTCOMM
-	select PPC_BESTCOMM_FEC
+	depends on PPC_MERGE && PPC_MPC52xx && PPC_BESTCOMM_FEC
 	select CRC32
 	select PHYLIB
 	---help---
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c
index fc1cf0b..a8a0ee2 100644
--- a/drivers/net/fec_mpc52xx.c
+++ b/drivers/net/fec_mpc52xx.c
@@ -879,9 +879,9 @@ mpc52xx_fec_probe(struct of_device *op, const struct of_device_id *match)
 				"Error while parsing device node resource\n" );
 		return rv;
 	}
-	if ((mem.end - mem.start + 1) != sizeof(struct mpc52xx_fec)) {
+	if ((mem.end - mem.start + 1) < sizeof(struct mpc52xx_fec)) {
 		printk(KERN_ERR DRIVER_NAME
-			" - invalid resource size (%lx != %x), check mpc52xx_devices.c\n",
+			" - invalid resource size (%lx < %x), check mpc52xx_devices.c\n",
 			(unsigned long)(mem.end - mem.start + 1), sizeof(struct mpc52xx_fec));
 		return -EINVAL;
 	}
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index 366e62a..0f306dd 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -1151,7 +1151,7 @@ static inline int myri10ge_clean_rx_done(struct myri10ge_priv *mgp, int budget)
 	u16 length;
 	__wsum checksum;
 
-	while (rx_done->entry[idx].length != 0 && work_done++ < budget) {
+	while (rx_done->entry[idx].length != 0 && work_done < budget) {
 		length = ntohs(rx_done->entry[idx].length);
 		rx_done->entry[idx].length = 0;
 		checksum = csum_unfold(rx_done->entry[idx].checksum);
@@ -1167,6 +1167,7 @@ static inline int myri10ge_clean_rx_done(struct myri10ge_priv *mgp, int budget)
 		rx_bytes += rx_ok * (unsigned long)length;
 		cnt++;
 		idx = cnt & (myri10ge_max_intr_slots - 1);
+		work_done++;
 	}
 	rx_done->idx = idx;
 	rx_done->cnt = cnt;
@@ -1233,13 +1234,12 @@ static int myri10ge_poll(struct napi_struct *napi, int budget)
 	struct myri10ge_priv *mgp =
 	    container_of(napi, struct myri10ge_priv, napi);
 	struct net_device *netdev = mgp->dev;
-	struct myri10ge_rx_done *rx_done = &mgp->rx_done;
 	int work_done;
 
 	/* process as many rx events as NAPI will allow */
 	work_done = myri10ge_clean_rx_done(mgp, budget);
 
-	if (rx_done->entry[rx_done->idx].length == 0 || !netif_running(netdev)) {
+	if (work_done < budget || !netif_running(netdev)) {
 		netif_rx_complete(netdev, napi);
 		put_be32(htonl(3), mgp->irq_claim);
 	}

^ permalink raw reply related

* [BUG] in inet6_create
From: Roel Kluin @ 2007-11-01 20:07 UTC (permalink / raw)
  To: netdev

I got this bug recently, I am not sure whether this is related to any previously 
reported ones. It was a recently pulled git kernel. Also I have been hacking my
kernel a bit lately, but I think that I haven't got any changes in the currently
running kernel.

FYI: my network card was not running (module not loaded, and I just started 
thunderbird)

Roel

More information needed?
--

NET: Registered protocol family 10
 BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
 printing eip: f881034f *pde = 00000000 
 Oops: 0000 [#1] 
 Modules linked in: ipv6
 
 Pid: 17080, comm: modprobe Not tainted (2.6.24-rc1 #1)
 EIP: 0060:[<f881034f>] EFLAGS: 00010293 CPU: 0
 EIP is at inet6_create+0x5f/0x340 [ipv6]
 EAX: 00000000 EBX: 00000000 ECX: f7621fd5 EDX: f8842e78
 ESI: ffffffff EDI: 0000003a EBP: ffffff9f ESP: d780de74
  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
 Process modprobe (pid: 17080, ti=d780c000 task=c3a86000 task.ti=d780c000)
 Stack: 00000000 00000246 00000246 00000003 c60e22a0 00000246 00000000 00000000 
        f88410fc ffffffea 00000003 c063f680 c028d597 00000002 00000001 c028d52c 
        c60e22a0 00000003 f8842d00 00000032 00000000 c028d6a7 0000003a f88438c0 
 Call Trace:
  [<c028d597>] __sock_create+0xf7/0x1e0
  [<c028d52c>] __sock_create+0x8c/0x1e0
  [<c028d6a7>] sock_create_kern+0x27/0x30
  [<f88457af>] icmpv6_init+0x1f/0xa0 [ipv6]
  [<f884513f>] inet6_init+0x13f/0x2f0 [ipv6]
  [<c0144f73>] sys_init_module+0x173/0x16c0
  [<c0132860>] autoremove_wake_function+0x0/0x50
  [<c0171ef1>] sys_read+0x41/0x70
  [<c010818e>] syscall_call+0x7/0xb
  =======================
 Code: c0 85 c9 0f 84 12 02 00 00 c7 44 24 18 00 00 00 00 0f bf c6 c1 e0 03 8b 98 80 2e 84 f8 8d 90 80 2e 84 f8 89 5c 24 1c 8b 44 24 1c <8b> 00 0f 18 00 90 39 d3 bd a2 ff ff ff 75 36 e9 f3 01 00 00 85 
 EIP: [<f881034f>] inet6_create+0x5f/0x340 [ipv6] SS:ESP 0068:d780de74
 BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
 printing eip: f881034f *pde = 00000000 
 Oops: 0000 [#2] 
 Modules linked in: ipv6
 
 Pid: 17078, comm: thunderbird-bin Tainted: G      D (2.6.24-rc1 #1)
 EIP: 0060:[<f881034f>] EFLAGS: 00210293 CPU: 0
 EIP is at inet6_create+0x5f/0x340 [ipv6]
 EAX: 00000000 EBX: 00000000 ECX: f7621fd5 EDX: f8842e78
 ESI: ffffffff EDI: 00000000 EBP: ffffff9f ESP: c2801f00
  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
 Process thunderbird-bin (pid: 17078, ti=c2800000 task=c20bf000 task.ti=c2800000)
 Stack: c0185024 00200246 00200246 00000001 c60e2000 00200246 00000000 00000000 
        f88410fc ffffffea 00000001 c063f680 c028d597 00000002 00000001 c028d52c 
        c60e2000 00000001 0000000a 08b095bc c2800000 c028d6e9 00000000 c2801f74 
 Call Trace:
  [<c0185024>] new_inode+0x24/0x90
  [<c028d597>] __sock_create+0xf7/0x1e0
  [<c028d52c>] __sock_create+0x8c/0x1e0
  [<c028d6e9>] sock_create+0x39/0x50
  [<c028d89c>] sys_socket+0x1c/0x50
  [<c028e248>] sys_socketcall+0x68/0x280
  [<c013da9b>] trace_hardirqs_on+0xbb/0x160
  [<c011b80d>] do_sched_setscheduler+0xad/0xc0
  [<c01081fb>] restore_nocheck+0x12/0x15
  [<c010818e>] syscall_call+0x7/0xb
  =======================
 Code: c0 85 c9 0f 84 12 02 00 00 c7 44 24 18 00 00 00 00 0f bf c6 c1 e0 03 8b 98 80 2e 84 f8 8d 90 80 2e 84 f8 89 5c 24 1c 8b 44 24 1c <8b> 00 0f 18 00 90 39 d3 bd a2 ff ff ff 75 36 e9 f3 01 00 00 85 
 EIP: [<f881034f>] inet6_create+0x5f/0x340 [ipv6] SS:ESP 0068:c2801f00

^ permalink raw reply

* Re: [PATCH] net: Add 405EX support to new EMAC driver
From: Benjamin Herrenschmidt @ 2007-11-01 20:37 UTC (permalink / raw)
  To: Stefan Roese; +Cc: netdev, linuxppc-dev, Josh Boyer
In-Reply-To: <200711011554.04935.sr@denx.de>


On Thu, 2007-11-01 at 15:54 +0100, Stefan Roese wrote:
> This patch adds support for the 405EX to the new EMAC driver.
> 
> Tested on AMCC Kilauea.

 .../...

> diff --git a/drivers/net/ibm_newemac/rgmii.c b/drivers/net/ibm_newemac/rgmii.c
> index de41695..e393f68 100644
> --- a/drivers/net/ibm_newemac/rgmii.c
> +++ b/drivers/net/ibm_newemac/rgmii.c
> @@ -140,9 +140,6 @@ void rgmii_get_mdio(struct of_device *ofdev, int input)
>  
>  	RGMII_DBG2(dev, "get_mdio(%d)" NL, input);
>  
> -	if (dev->type != RGMII_AXON)
> -		return;
> -
>  	mutex_lock(&dev->lock);

That will break 440GX boards that need to use the RGMII for data and the
ZMII for MDIO.

You may want to change the name RGMII_AXON something like RGMII_HAS_MDIO
instead and set that for 405EX as well instead.

Ben.



^ permalink raw reply

* Re: [PATCH] net: Add 405EX support to new EMAC driver
From: Josh Boyer @ 2007-11-01 21:07 UTC (permalink / raw)
  To: benh; +Cc: Stefan Roese, netdev, linuxppc-dev
In-Reply-To: <1193949421.6541.10.camel@pasglop>

On Fri, 02 Nov 2007 07:37:01 +1100
Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:

> 
> On Thu, 2007-11-01 at 15:54 +0100, Stefan Roese wrote:
> > This patch adds support for the 405EX to the new EMAC driver.
> > 
> > Tested on AMCC Kilauea.
> 
>  .../...
> 
> > diff --git a/drivers/net/ibm_newemac/rgmii.c b/drivers/net/ibm_newemac/rgmii.c
> > index de41695..e393f68 100644
> > --- a/drivers/net/ibm_newemac/rgmii.c
> > +++ b/drivers/net/ibm_newemac/rgmii.c
> > @@ -140,9 +140,6 @@ void rgmii_get_mdio(struct of_device *ofdev, int input)
> >  
> >  	RGMII_DBG2(dev, "get_mdio(%d)" NL, input);
> >  
> > -	if (dev->type != RGMII_AXON)
> > -		return;
> > -
> >  	mutex_lock(&dev->lock);
> 
> That will break 440GX boards that need to use the RGMII for data and the
> ZMII for MDIO.
> 
> You may want to change the name RGMII_AXON something like RGMII_HAS_MDIO
> instead and set that for 405EX as well instead.

And perhaps adding a comment about that since the meaning of that code
isn't very obvious. That way people that aren't the original author
of the driver don't get confused again.

josh

^ permalink raw reply

* Re: build #337 failed for 2.6.24-rc1-gb1d08ac In function `usbnet_set_settings':
From: Randy Dunlap @ 2007-11-01 21:11 UTC (permalink / raw)
  To: Toralf Förster, dbrownell; +Cc: linux-kernel, netdev
In-Reply-To: <200711012024.57412.toralf.foerster@gmx.de>

On Thu, 1 Nov 2007 20:24:54 +0100 Toralf Förster wrote:

[adding netdev]

> Hello,
> 
> the build with the attached .config failed, make ends with:
> ...
>   CC      arch/x86/lib/usercopy_32.o
>   AR      arch/x86/lib/lib.a
>   GEN     .version
>   CHK     include/linux/compile.h
>   UPD     include/linux/compile.h
>   CC      init/version.o
>   LD      init/built-in.o
>   LD      .tmp_vmlinux1
> drivers/built-in.o: In function `usbnet_set_settings':
> (.text+0xf1876): undefined reference to `mii_ethtool_sset'
> drivers/built-in.o: In function `usbnet_get_settings':
> (.text+0xf1836): undefined reference to `mii_ethtool_gset'
> drivers/built-in.o: In function `usbnet_get_link':
> (.text+0xf18d6): undefined reference to `mii_link_ok'
> drivers/built-in.o: In function `usbnet_nway_reset':
> (.text+0xf18f6): undefined reference to `mii_nway_restart'
> make: *** [.tmp_vmlinux1] Error 1

The MII functions aren't available unless NET_ETHERNET=y.
Howver, the MII functions aren't always needed...

David, any ideas on this one?

 config USB_USBNET
        tristate "Multi-purpose USB Networking Framework"
+       depends on NET_ETHERNET if USB_USBNET_MII != n
        select MII if USB_USBNET_MII != n

would be handy.  But invalid.

Hm, wait.  Haven't we seen this before and decided that MII should
be made more generally available?  I.e., not depend on NET_ETHERNET?


> The build was made with :
> $> make mrproper && make rndconfig && <tweak config file> && make oldconfig && make
> 
> Here's the config:
> 
> #
> # Automatically generated make config: don't edit
> # Linux kernel version: 2.6.24-rc1
> # Thu Nov  1 19:33:29 2007
> #
> CONFIG_X86_32=y
> CONFIG_GENERIC_TIME=y
> CONFIG_GENERIC_CMOS_UPDATE=y
> CONFIG_CLOCKSOURCE_WATCHDOG=y
> CONFIG_GENERIC_CLOCKEVENTS=y
> CONFIG_LOCKDEP_SUPPORT=y
> CONFIG_STACKTRACE_SUPPORT=y
> CONFIG_SEMAPHORE_SLEEPERS=y
> CONFIG_X86=y
> CONFIG_MMU=y
> CONFIG_ZONE_DMA=y
> CONFIG_QUICKLIST=y
> CONFIG_GENERIC_ISA_DMA=y
> CONFIG_GENERIC_IOMAP=y
> CONFIG_GENERIC_BUG=y
> CONFIG_GENERIC_HWEIGHT=y
> CONFIG_ARCH_MAY_HAVE_PC_FDC=y
> CONFIG_DMI=y
> CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
> 
> #
> # General setup
> #
> # CONFIG_EXPERIMENTAL is not set
> CONFIG_BROKEN_ON_SMP=y
> CONFIG_LOCK_KERNEL=y
> CONFIG_INIT_ENV_ARG_LIMIT=32
> CONFIG_LOCALVERSION=""
> # CONFIG_LOCALVERSION_AUTO is not set
> CONFIG_SWAP=y
> CONFIG_SYSVIPC=y
> CONFIG_SYSVIPC_SYSCTL=y
> CONFIG_BSD_PROCESS_ACCT=y
> # CONFIG_BSD_PROCESS_ACCT_V3 is not set
> # CONFIG_TASKSTATS is not set
> CONFIG_AUDIT=y
> CONFIG_AUDITSYSCALL=y
> # CONFIG_IKCONFIG is not set
> CONFIG_LOG_BUF_SHIFT=14
> CONFIG_CGROUPS=y
> # CONFIG_CGROUP_DEBUG is not set
> CONFIG_CGROUP_NS=y
> # CONFIG_CGROUP_CPUACCT is not set
> # CONFIG_FAIR_GROUP_SCHED is not set
> CONFIG_SYSFS_DEPRECATED=y
> CONFIG_RELAY=y
> # CONFIG_BLK_DEV_INITRD is not set
> CONFIG_SYSCTL=y
> # CONFIG_EMBEDDED is not set
> CONFIG_UID16=y
> CONFIG_SYSCTL_SYSCALL=y
> CONFIG_KALLSYMS=y
> # CONFIG_KALLSYMS_EXTRA_PASS is not set
> CONFIG_HOTPLUG=y
> CONFIG_PRINTK=y
> CONFIG_BUG=y
> CONFIG_ELF_CORE=y
> CONFIG_BASE_FULL=y
> CONFIG_FUTEX=y
> CONFIG_ANON_INODES=y
> CONFIG_EPOLL=y
> CONFIG_SIGNALFD=y
> CONFIG_EVENTFD=y
> CONFIG_SHMEM=y
> CONFIG_VM_EVENT_COUNTERS=y
> CONFIG_SLAB=y
> # CONFIG_SLUB is not set
> # CONFIG_SLOB is not set
> CONFIG_RT_MUTEXES=y
> # CONFIG_TINY_SHMEM is not set
> CONFIG_BASE_SMALL=0
> CONFIG_MODULES=y
> # CONFIG_MODULE_UNLOAD is not set
> CONFIG_MODVERSIONS=y
> # CONFIG_MODULE_SRCVERSION_ALL is not set
> # CONFIG_KMOD is not set
> CONFIG_BLOCK=y
> # CONFIG_LBD is not set
> CONFIG_BLK_DEV_IO_TRACE=y
> # CONFIG_LSF is not set
> 
> #
> # IO Schedulers
> #
> CONFIG_IOSCHED_NOOP=y
> # CONFIG_IOSCHED_AS is not set
> # CONFIG_IOSCHED_DEADLINE is not set
> CONFIG_IOSCHED_CFQ=y
> # CONFIG_DEFAULT_AS is not set
> # CONFIG_DEFAULT_DEADLINE is not set
> # CONFIG_DEFAULT_CFQ is not set
> CONFIG_DEFAULT_NOOP=y
> CONFIG_DEFAULT_IOSCHED="noop"
> 
> #
> # Processor type and features
> #
> CONFIG_TICK_ONESHOT=y
> CONFIG_NO_HZ=y
> # CONFIG_HIGH_RES_TIMERS is not set
> CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
> # CONFIG_SMP is not set
> CONFIG_X86_PC=y
> # CONFIG_X86_ELAN is not set
> # CONFIG_X86_VOYAGER is not set
> # CONFIG_X86_NUMAQ is not set
> # CONFIG_X86_SUMMIT is not set
> # CONFIG_X86_BIGSMP is not set
> # CONFIG_X86_VISWS is not set
> # CONFIG_X86_GENERICARCH is not set
> # CONFIG_X86_ES7000 is not set
> # CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER is not set
> CONFIG_PARAVIRT_GUEST=y
> # CONFIG_XEN is not set
> # CONFIG_VMI is not set
> # CONFIG_M386 is not set
> # CONFIG_M486 is not set
> # CONFIG_M586 is not set
> # CONFIG_M586TSC is not set
> # CONFIG_M586MMX is not set
> # CONFIG_M686 is not set
> # CONFIG_MPENTIUMII is not set
> # CONFIG_MPENTIUMIII is not set
> CONFIG_MPENTIUMM=y
> # CONFIG_MCORE2 is not set
> # CONFIG_MPENTIUM4 is not set
> # CONFIG_MK6 is not set
> # CONFIG_MK7 is not set
> # CONFIG_MK8 is not set
> # CONFIG_MCRUSOE is not set
> # CONFIG_MEFFICEON is not set
> # CONFIG_MWINCHIPC6 is not set
> # CONFIG_MWINCHIP2 is not set
> # CONFIG_MWINCHIP3D is not set
> # CONFIG_MGEODEGX1 is not set
> # CONFIG_MGEODE_LX is not set
> # CONFIG_MCYRIXIII is not set
> # CONFIG_MVIAC3_2 is not set
> # CONFIG_MVIAC7 is not set
> CONFIG_X86_GENERIC=y
> CONFIG_X86_CMPXCHG=y
> CONFIG_X86_L1_CACHE_SHIFT=7
> CONFIG_X86_XADD=y
> CONFIG_RWSEM_XCHGADD_ALGORITHM=y
> # CONFIG_ARCH_HAS_ILOG2_U32 is not set
> # CONFIG_ARCH_HAS_ILOG2_U64 is not set
> CONFIG_GENERIC_CALIBRATE_DELAY=y
> CONFIG_X86_WP_WORKS_OK=y
> CONFIG_X86_INVLPG=y
> CONFIG_X86_BSWAP=y
> CONFIG_X86_POPAD_OK=y
> CONFIG_X86_GOOD_APIC=y
> CONFIG_X86_INTEL_USERCOPY=y
> CONFIG_X86_USE_PPRO_CHECKSUM=y
> CONFIG_X86_TSC=y
> CONFIG_X86_CMOV=y
> CONFIG_X86_MINIMUM_CPU_FAMILY=4
> CONFIG_HPET_TIMER=y
> # CONFIG_PREEMPT_NONE is not set
> # CONFIG_PREEMPT_VOLUNTARY is not set
> CONFIG_PREEMPT=y
> # CONFIG_PREEMPT_BKL is not set
> # CONFIG_X86_UP_APIC is not set
> # CONFIG_X86_MCE is not set
> CONFIG_VM86=y
> CONFIG_TOSHIBA=m
> CONFIG_I8K=m
> CONFIG_X86_REBOOTFIXUPS=y
> # CONFIG_MICROCODE is not set
> CONFIG_X86_MSR=y
> # CONFIG_X86_CPUID is not set
> 
> #
> # Firmware Drivers
> #
> CONFIG_EDD=y
> CONFIG_DELL_RBU=y
> CONFIG_DCDBAS=y
> # CONFIG_DMIID is not set
> CONFIG_NOHIGHMEM=y
> # CONFIG_HIGHMEM4G is not set
> # CONFIG_HIGHMEM64G is not set
> CONFIG_PAGE_OFFSET=0xC0000000
> CONFIG_X86_PAE=y
> CONFIG_ARCH_POPULATES_NODE_MAP=y
> CONFIG_FLATMEM=y
> CONFIG_FLAT_NODE_MEM_MAP=y
> # CONFIG_SPARSEMEM_STATIC is not set
> # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
> CONFIG_SPLIT_PTLOCK_CPUS=4
> CONFIG_RESOURCES_64BIT=y
> CONFIG_ZONE_DMA_FLAG=1
> CONFIG_BOUNCE=y
> CONFIG_NR_QUICK=1
> CONFIG_VIRT_TO_BUS=y
> CONFIG_MATH_EMULATION=y
> CONFIG_MTRR=y
> # CONFIG_SECCOMP is not set
> # CONFIG_HZ_100 is not set
> # CONFIG_HZ_250 is not set
> CONFIG_HZ_300=y
> # CONFIG_HZ_1000 is not set
> CONFIG_HZ=300
> # CONFIG_KEXEC is not set
> CONFIG_PHYSICAL_START=0x100000
> CONFIG_PHYSICAL_ALIGN=0x100000
> # CONFIG_COMPAT_VDSO is not set
> 
> #
> # Power management options (ACPI, APM)
> #
> CONFIG_PM=y
> CONFIG_PM_LEGACY=y
> # CONFIG_PM_DEBUG is not set
> CONFIG_PM_SLEEP=y
> CONFIG_SUSPEND_UP_POSSIBLE=y
> # CONFIG_SUSPEND is not set
> CONFIG_HIBERNATION_UP_POSSIBLE=y
> CONFIG_HIBERNATION=y
> CONFIG_PM_STD_PARTITION=""
> # CONFIG_ACPI is not set
> # CONFIG_APM is not set
> 
> #
> # CPU Frequency scaling
> #
> # CONFIG_CPU_FREQ is not set
> # CONFIG_CPU_IDLE is not set
> 
> #
> # Bus options (PCI, PCMCIA, EISA, MCA, ISA)
> #
> CONFIG_PCI=y
> # CONFIG_PCI_GOBIOS is not set
> CONFIG_PCI_GOMMCONFIG=y
> # CONFIG_PCI_GODIRECT is not set
> # CONFIG_PCI_GOANY is not set
> CONFIG_PCI_DOMAINS=y
> # CONFIG_PCIEPORTBUS is not set
> # CONFIG_ARCH_SUPPORTS_MSI is not set
> CONFIG_ISA_DMA_API=y
> # CONFIG_ISA is not set
> CONFIG_MCA=y
> # CONFIG_MCA_LEGACY is not set
> CONFIG_SCx200=m
> CONFIG_SCx200HR_TIMER=m
> CONFIG_K8_NB=y
> # CONFIG_PCCARD is not set
> 
> #
> # Executable file formats
> #
> CONFIG_BINFMT_ELF=y
> # CONFIG_BINFMT_AOUT is not set
> CONFIG_BINFMT_MISC=y
> 
> #
> # Networking
> #
> CONFIG_NET=y
> 
> #
> # Networking options
> #
> CONFIG_PACKET=m
> # CONFIG_PACKET_MMAP is not set
> CONFIG_UNIX=m
> CONFIG_XFRM=y
> # CONFIG_XFRM_USER is not set
> CONFIG_NET_KEY=m
> CONFIG_INET=y
> # CONFIG_IP_MULTICAST is not set
> CONFIG_IP_ADVANCED_ROUTER=y
> CONFIG_ASK_IP_FIB_HASH=y
> # CONFIG_IP_FIB_TRIE is not set
> CONFIG_IP_FIB_HASH=y
> # CONFIG_IP_MULTIPLE_TABLES is not set
> CONFIG_IP_ROUTE_MULTIPATH=y
> # CONFIG_IP_ROUTE_VERBOSE is not set
> CONFIG_IP_PNP=y
> # CONFIG_IP_PNP_DHCP is not set
> CONFIG_IP_PNP_BOOTP=y
> CONFIG_IP_PNP_RARP=y
> # CONFIG_NET_IPIP is not set
> # CONFIG_NET_IPGRE is not set
> CONFIG_SYN_COOKIES=y
> CONFIG_INET_AH=m
> CONFIG_INET_ESP=y
> CONFIG_INET_IPCOMP=y
> CONFIG_INET_XFRM_TUNNEL=y
> CONFIG_INET_TUNNEL=y
> # CONFIG_INET_XFRM_MODE_TRANSPORT is not set
> # CONFIG_INET_XFRM_MODE_TUNNEL is not set
> # CONFIG_INET_XFRM_MODE_BEET is not set
> CONFIG_INET_LRO=y
> CONFIG_INET_DIAG=y
> CONFIG_INET_TCP_DIAG=y
> CONFIG_TCP_CONG_ADVANCED=y
> CONFIG_TCP_CONG_BIC=m
> CONFIG_TCP_CONG_CUBIC=m
> # CONFIG_TCP_CONG_WESTWOOD is not set
> CONFIG_TCP_CONG_HTCP=y
> # CONFIG_DEFAULT_BIC is not set
> # CONFIG_DEFAULT_CUBIC is not set
> # CONFIG_DEFAULT_HTCP is not set
> # CONFIG_DEFAULT_VEGAS is not set
> # CONFIG_DEFAULT_WESTWOOD is not set
> CONFIG_DEFAULT_RENO=y
> CONFIG_DEFAULT_TCP_CONG="reno"
> # CONFIG_IP_VS is not set
> CONFIG_IPV6=y
> CONFIG_IPV6_PRIVACY=y
> CONFIG_IPV6_ROUTER_PREF=y
> # CONFIG_INET6_AH is not set
> CONFIG_INET6_ESP=y
> CONFIG_INET6_IPCOMP=y
> CONFIG_INET6_XFRM_TUNNEL=y
> CONFIG_INET6_TUNNEL=y
> CONFIG_INET6_XFRM_MODE_TRANSPORT=y
> # CONFIG_INET6_XFRM_MODE_TUNNEL is not set
> # CONFIG_INET6_XFRM_MODE_BEET is not set
> # CONFIG_IPV6_SIT is not set
> # CONFIG_IPV6_TUNNEL is not set
> # CONFIG_NETWORK_SECMARK is not set
> CONFIG_NETFILTER=y
> # CONFIG_NETFILTER_DEBUG is not set
> # CONFIG_BRIDGE_NETFILTER is not set
> 
> #
> # Core Netfilter Configuration
> #
> CONFIG_NETFILTER_NETLINK=y
> CONFIG_NETFILTER_NETLINK_QUEUE=y
> # CONFIG_NETFILTER_NETLINK_LOG is not set
> CONFIG_NF_CONNTRACK_ENABLED=m
> CONFIG_NF_CONNTRACK=m
> # CONFIG_NF_CT_ACCT is not set
> CONFIG_NF_CONNTRACK_MARK=y
> # CONFIG_NF_CONNTRACK_AMANDA is not set
> CONFIG_NF_CONNTRACK_FTP=m
> # CONFIG_NF_CONNTRACK_IRC is not set
> # CONFIG_NF_CONNTRACK_PPTP is not set
> CONFIG_NF_CONNTRACK_TFTP=m
> CONFIG_NETFILTER_XTABLES=y
> # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
> CONFIG_NETFILTER_XT_TARGET_MARK=m
> # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
> CONFIG_NETFILTER_XT_TARGET_NFLOG=y
> # CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
> CONFIG_NETFILTER_XT_TARGET_TRACE=m
> CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
> CONFIG_NETFILTER_XT_MATCH_COMMENT=y
> # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
> # CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
> CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
> CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
> # CONFIG_NETFILTER_XT_MATCH_DCCP is not set
> CONFIG_NETFILTER_XT_MATCH_DSCP=m
> CONFIG_NETFILTER_XT_MATCH_ESP=m
> # CONFIG_NETFILTER_XT_MATCH_HELPER is not set
> # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
> # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
> # CONFIG_NETFILTER_XT_MATCH_MAC is not set
> CONFIG_NETFILTER_XT_MATCH_MARK=y
> CONFIG_NETFILTER_XT_MATCH_POLICY=y
> # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
> CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
> CONFIG_NETFILTER_XT_MATCH_QUOTA=m
> # CONFIG_NETFILTER_XT_MATCH_REALM is not set
> CONFIG_NETFILTER_XT_MATCH_STATE=m
> # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
> CONFIG_NETFILTER_XT_MATCH_STRING=m
> CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
> CONFIG_NETFILTER_XT_MATCH_TIME=m
> CONFIG_NETFILTER_XT_MATCH_U32=m
> CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y
> 
> #
> # IP: Netfilter Configuration
> #
> CONFIG_NF_CONNTRACK_IPV4=m
> CONFIG_NF_CONNTRACK_PROC_COMPAT=y
> CONFIG_IP_NF_QUEUE=m
> CONFIG_IP_NF_IPTABLES=m
> CONFIG_IP_NF_MATCH_IPRANGE=m
> # CONFIG_IP_NF_MATCH_TOS is not set
> # CONFIG_IP_NF_MATCH_RECENT is not set
> # CONFIG_IP_NF_MATCH_ECN is not set
> # CONFIG_IP_NF_MATCH_AH is not set
> # CONFIG_IP_NF_MATCH_TTL is not set
> # CONFIG_IP_NF_MATCH_OWNER is not set
> # CONFIG_IP_NF_MATCH_ADDRTYPE is not set
> # CONFIG_IP_NF_FILTER is not set
> CONFIG_IP_NF_TARGET_LOG=m
> # CONFIG_IP_NF_TARGET_ULOG is not set
> CONFIG_NF_NAT=m
> CONFIG_NF_NAT_NEEDED=y
> CONFIG_IP_NF_TARGET_MASQUERADE=m
> CONFIG_IP_NF_TARGET_REDIRECT=m
> # CONFIG_IP_NF_TARGET_NETMAP is not set
> # CONFIG_IP_NF_TARGET_SAME is not set
> CONFIG_NF_NAT_FTP=m
> # CONFIG_NF_NAT_IRC is not set
> CONFIG_NF_NAT_TFTP=m
> # CONFIG_NF_NAT_AMANDA is not set
> # CONFIG_NF_NAT_PPTP is not set
> # CONFIG_NF_NAT_H323 is not set
> # CONFIG_NF_NAT_SIP is not set
> # CONFIG_IP_NF_MANGLE is not set
> CONFIG_IP_NF_RAW=m
> CONFIG_IP_NF_ARPTABLES=y
> CONFIG_IP_NF_ARPFILTER=m
> # CONFIG_IP_NF_ARP_MANGLE is not set
> 
> #
> # Bridge: Netfilter Configuration
> #
> CONFIG_BRIDGE_NF_EBTABLES=m
> CONFIG_BRIDGE_EBT_BROUTE=m
> CONFIG_BRIDGE_EBT_T_FILTER=m
> CONFIG_BRIDGE_EBT_T_NAT=m
> # CONFIG_BRIDGE_EBT_802_3 is not set
> # CONFIG_BRIDGE_EBT_AMONG is not set
> CONFIG_BRIDGE_EBT_ARP=m
> # CONFIG_BRIDGE_EBT_IP is not set
> # CONFIG_BRIDGE_EBT_LIMIT is not set
> # CONFIG_BRIDGE_EBT_MARK is not set
> CONFIG_BRIDGE_EBT_PKTTYPE=m
> CONFIG_BRIDGE_EBT_STP=m
> # CONFIG_BRIDGE_EBT_VLAN is not set
> # CONFIG_BRIDGE_EBT_ARPREPLY is not set
> # CONFIG_BRIDGE_EBT_DNAT is not set
> CONFIG_BRIDGE_EBT_MARK_T=m
> # CONFIG_BRIDGE_EBT_REDIRECT is not set
> CONFIG_BRIDGE_EBT_SNAT=m
> # CONFIG_BRIDGE_EBT_LOG is not set
> CONFIG_BRIDGE_EBT_ULOG=m
> CONFIG_BRIDGE=m
> CONFIG_VLAN_8021Q=m
> CONFIG_DECNET=y
> CONFIG_LLC=y
> # CONFIG_LLC2 is not set
> CONFIG_IPX=y
> # CONFIG_IPX_INTERN is not set
> # CONFIG_ATALK is not set
> CONFIG_NET_SCHED=y
> 
> #
> # Queueing/Scheduling
> #
> # CONFIG_NET_SCH_CBQ is not set
> # CONFIG_NET_SCH_HTB is not set
> CONFIG_NET_SCH_HFSC=m
> CONFIG_NET_SCH_PRIO=y
> CONFIG_NET_SCH_RR=m
> # CONFIG_NET_SCH_RED is not set
> CONFIG_NET_SCH_SFQ=m
> CONFIG_NET_SCH_TEQL=m
> CONFIG_NET_SCH_TBF=y
> CONFIG_NET_SCH_GRED=m
> # CONFIG_NET_SCH_DSMARK is not set
> # CONFIG_NET_SCH_NETEM is not set
> CONFIG_NET_SCH_INGRESS=m
> 
> #
> # Classification
> #
> CONFIG_NET_CLS=y
> CONFIG_NET_CLS_BASIC=m
> CONFIG_NET_CLS_TCINDEX=y
> CONFIG_NET_CLS_ROUTE4=m
> CONFIG_NET_CLS_ROUTE=y
> CONFIG_NET_CLS_FW=m
> # CONFIG_NET_CLS_U32 is not set
> CONFIG_NET_CLS_RSVP=y
> CONFIG_NET_CLS_RSVP6=m
> CONFIG_NET_EMATCH=y
> CONFIG_NET_EMATCH_STACK=32
> CONFIG_NET_EMATCH_CMP=m
> CONFIG_NET_EMATCH_NBYTE=y
> CONFIG_NET_EMATCH_U32=m
> CONFIG_NET_EMATCH_META=y
> # CONFIG_NET_EMATCH_TEXT is not set
> CONFIG_NET_CLS_ACT=y
> CONFIG_NET_ACT_POLICE=y
> CONFIG_NET_ACT_GACT=m
> # CONFIG_GACT_PROB is not set
> # CONFIG_NET_ACT_MIRRED is not set
> # CONFIG_NET_ACT_IPT is not set
> CONFIG_NET_ACT_NAT=m
> # CONFIG_NET_ACT_PEDIT is not set
> # CONFIG_NET_ACT_SIMP is not set
> CONFIG_NET_CLS_POLICE=y
> # CONFIG_NET_CLS_IND is not set
> CONFIG_NET_SCH_FIFO=y
> 
> #
> # Network testing
> #
> CONFIG_NET_PKTGEN=y
> # CONFIG_HAMRADIO is not set
> # CONFIG_IRDA is not set
> CONFIG_BT=y
> CONFIG_BT_L2CAP=m
> CONFIG_BT_SCO=m
> # CONFIG_BT_RFCOMM is not set
> # CONFIG_BT_BNEP is not set
> # CONFIG_BT_HIDP is not set
> 
> #
> # Bluetooth device drivers
> #
> # CONFIG_BT_HCIUSB is not set
> # CONFIG_BT_HCIBTSDIO is not set
> CONFIG_BT_HCIUART=y
> # CONFIG_BT_HCIUART_H4 is not set
> CONFIG_BT_HCIUART_BCSP=y
> CONFIG_BT_HCIUART_LL=y
> # CONFIG_BT_HCIBCM203X is not set
> CONFIG_BT_HCIBPA10X=m
> CONFIG_BT_HCIBFUSB=m
> CONFIG_BT_HCIVHCI=y
> 
> #
> # Wireless
> #
> CONFIG_CFG80211=m
> CONFIG_NL80211=y
> CONFIG_WIRELESS_EXT=y
> # CONFIG_IEEE80211 is not set
> CONFIG_RFKILL=m
> # CONFIG_RFKILL_INPUT is not set
> 
> #
> # Device Drivers
> #
> 
> #
> # Generic Driver Options
> #
> CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
> CONFIG_STANDALONE=y
> CONFIG_PREVENT_FIRMWARE_BUILD=y
> CONFIG_FW_LOADER=y
> # CONFIG_SYS_HYPERVISOR is not set
> CONFIG_CONNECTOR=m
> # CONFIG_MTD is not set
> CONFIG_PARPORT=y
> # CONFIG_PARPORT_PC is not set
> # CONFIG_PARPORT_GSC is not set
> CONFIG_PARPORT_AX88796=m
> CONFIG_PARPORT_1284=y
> CONFIG_PARPORT_NOT_PC=y
> # CONFIG_BLK_DEV is not set
> CONFIG_MISC_DEVICES=y
> # CONFIG_PHANTOM is not set
> CONFIG_EEPROM_93CX6=y
> CONFIG_SGI_IOC4=m
> CONFIG_IDE=y
> CONFIG_BLK_DEV_IDE=m
> 
> #
> # Please see Documentation/ide.txt for help/info on IDE drives
> #
> # CONFIG_BLK_DEV_IDE_SATA is not set
> CONFIG_BLK_DEV_HD_IDE=y
> # CONFIG_BLK_DEV_IDEDISK is not set
> CONFIG_IDEDISK_MULTI_MODE=y
> # CONFIG_BLK_DEV_IDECD is not set
> CONFIG_BLK_DEV_IDEFLOPPY=m
> CONFIG_IDE_TASK_IOCTL=y
> # CONFIG_IDE_PROC_FS is not set
> 
> #
> # IDE chipset support/bugfixes
> #
> # CONFIG_IDE_GENERIC is not set
> # CONFIG_BLK_DEV_PLATFORM is not set
> # CONFIG_BLK_DEV_CMD640 is not set
> 
> #
> # PCI IDE chipsets support
> #
> CONFIG_BLK_DEV_IDEPCI=y
> # CONFIG_IDEPCI_SHARE_IRQ is not set
> # CONFIG_IDEPCI_PCIBUS_ORDER is not set
> CONFIG_BLK_DEV_OFFBOARD=y
> # CONFIG_BLK_DEV_GENERIC is not set
> # CONFIG_BLK_DEV_RZ1000 is not set
> CONFIG_BLK_DEV_IDEDMA_PCI=y
> # CONFIG_BLK_DEV_AEC62XX is not set
> CONFIG_BLK_DEV_ALI15X3=m
> CONFIG_WDC_ALI15X3=y
> CONFIG_BLK_DEV_AMD74XX=m
> CONFIG_BLK_DEV_ATIIXP=m
> CONFIG_BLK_DEV_CMD64X=m
> # CONFIG_BLK_DEV_TRIFLEX is not set
> CONFIG_BLK_DEV_CY82C693=m
> # CONFIG_BLK_DEV_CS5530 is not set
> CONFIG_BLK_DEV_CS5535=m
> CONFIG_BLK_DEV_HPT34X=m
> CONFIG_BLK_DEV_HPT366=m
> CONFIG_BLK_DEV_JMICRON=m
> # CONFIG_BLK_DEV_SC1200 is not set
> CONFIG_BLK_DEV_PIIX=m
> # CONFIG_BLK_DEV_IT8213 is not set
> # CONFIG_BLK_DEV_IT821X is not set
> CONFIG_BLK_DEV_NS87415=m
> CONFIG_BLK_DEV_PDC202XX_OLD=m
> # CONFIG_PDC202XX_BURST is not set
> # CONFIG_BLK_DEV_PDC202XX_NEW is not set
> CONFIG_BLK_DEV_SVWKS=m
> CONFIG_BLK_DEV_SIIMAGE=m
> CONFIG_BLK_DEV_SIS5513=m
> CONFIG_BLK_DEV_SLC90E66=m
> # CONFIG_BLK_DEV_TRM290 is not set
> # CONFIG_BLK_DEV_VIA82CXXX is not set
> # CONFIG_BLK_DEV_TC86C001 is not set
> # CONFIG_IDE_ARM is not set
> CONFIG_BLK_DEV_IDEDMA=y
> CONFIG_IDE_ARCH_OBSOLETE_INIT=y
> CONFIG_BLK_DEV_HD=y
> 
> #
> # SCSI device support
> #
> CONFIG_RAID_ATTRS=y
> # CONFIG_SCSI is not set
> # CONFIG_SCSI_DMA is not set
> # CONFIG_SCSI_NETLINK is not set
> # CONFIG_ATA is not set
> CONFIG_MD=y
> CONFIG_BLK_DEV_MD=m
> # CONFIG_MD_LINEAR is not set
> CONFIG_MD_RAID0=m
> # CONFIG_MD_RAID1 is not set
> # CONFIG_MD_RAID456 is not set
> CONFIG_MD_MULTIPATH=m
> CONFIG_MD_FAULTY=m
> # CONFIG_BLK_DEV_DM is not set
> # CONFIG_FUSION is not set
> 
> #
> # IEEE 1394 (FireWire) support
> #
> 
> #
> # An alternative FireWire stack is available with EXPERIMENTAL=y
> #
> CONFIG_IEEE1394=m
> 
> #
> # Subsystem Options
> #
> # CONFIG_IEEE1394_VERBOSEDEBUG is not set
> 
> #
> # Controllers
> #
> 
> #
> # Texas Instruments PCILynx requires I2C
> #
> CONFIG_IEEE1394_OHCI1394=m
> 
> #
> # Protocols
> #
> # CONFIG_IEEE1394_VIDEO1394 is not set
> 
> #
> # SBP-2 support (for storage devices) requires SCSI
> #
> # CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set
> # CONFIG_IEEE1394_DV1394 is not set
> CONFIG_IEEE1394_RAWIO=m
> # CONFIG_I2O is not set
> # CONFIG_MACINTOSH_DRIVERS is not set
> CONFIG_NETDEVICES=y
> CONFIG_NETDEVICES_MULTIQUEUE=y
> CONFIG_IFB=m
> CONFIG_DUMMY=m
> CONFIG_BONDING=y
> # CONFIG_EQUALIZER is not set
> # CONFIG_TUN is not set
> CONFIG_VETH=m
> # CONFIG_ARCNET is not set
> # CONFIG_NET_ETHERNET is not set
> CONFIG_MII=m
> CONFIG_NETDEV_1000=y
> # CONFIG_ACENIC is not set
> # CONFIG_DL2K is not set
> CONFIG_E1000=m
> CONFIG_E1000_NAPI=y
> # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
> # CONFIG_E1000E is not set
> CONFIG_NS83820=m
> CONFIG_HAMACHI=m
> # CONFIG_R8169 is not set
> CONFIG_SIS190=m
> CONFIG_SKGE=y
> # CONFIG_SKGE_DEBUG is not set
> CONFIG_SKY2=m
> # CONFIG_SKY2_DEBUG is not set
> CONFIG_SK98LIN=m
> # CONFIG_VIA_VELOCITY is not set
> CONFIG_TIGON3=y
> CONFIG_BNX2=y
> CONFIG_QLA3XXX=m
> CONFIG_NETDEV_10000=y
> CONFIG_CHELSIO_T1=m
> CONFIG_CHELSIO_T1_1G=y
> # CONFIG_CHELSIO_T1_NAPI is not set
> CONFIG_CHELSIO_T3=y
> CONFIG_IXGBE=m
> CONFIG_IXGB=y
> CONFIG_S2IO=y
> CONFIG_MYRI10GE=y
> # CONFIG_NETXEN_NIC is not set
> CONFIG_NIU=y
> # CONFIG_MLX4_CORE is not set
> CONFIG_TEHUTI=m
> # CONFIG_TR is not set
> 
> #
> # Wireless LAN
> #
> # CONFIG_WLAN_PRE80211 is not set
> # CONFIG_WLAN_80211 is not set
> 
> #
> # USB Network Adapters
> #
> # CONFIG_USB_KAWETH is not set
> # CONFIG_USB_PEGASUS is not set
> # CONFIG_USB_USBNET_MII is not set
> CONFIG_USB_USBNET=y
> CONFIG_USB_NET_CDCETHER=m
> # CONFIG_USB_NET_DM9601 is not set
> CONFIG_USB_NET_GL620A=m
> CONFIG_USB_NET_NET1080=y
> # CONFIG_USB_NET_MCS7830 is not set
> # CONFIG_USB_NET_CDC_SUBSET is not set
> CONFIG_USB_NET_ZAURUS=m
> CONFIG_WAN=y
> CONFIG_LANMEDIA=y
> CONFIG_HDLC=y
> CONFIG_HDLC_RAW=m
> CONFIG_HDLC_RAW_ETH=m
> CONFIG_HDLC_CISCO=m
> # CONFIG_HDLC_FR is not set
> # CONFIG_HDLC_PPP is not set
> 
> #
> # X.25/LAPB support is disabled
> #
> CONFIG_PCI200SYN=m
> CONFIG_WANXL=m
> CONFIG_PC300=y
> 
> #
> # Cyclades-PC300 MLPPP support is disabled.
> #
> 
> #
> # Refer to the file README.mlppp, provided by PC300 package.
> #
> CONFIG_PC300TOO=m
> CONFIG_FARSYNC=y
> # CONFIG_DSCC4 is not set
> CONFIG_DLCI=y
> CONFIG_DLCI_MAX=8
> CONFIG_SBNI=m
> CONFIG_SBNI_MULTILINE=y
> # CONFIG_FDDI is not set
> CONFIG_PLIP=y
> # CONFIG_PPP is not set
> CONFIG_SLIP=y
> # CONFIG_SLIP_COMPRESSED is not set
> # CONFIG_SLIP_SMART is not set
> # CONFIG_SLIP_MODE_SLIP6 is not set
> # CONFIG_NETPOLL is not set
> # CONFIG_NET_POLL_CONTROLLER is not set
> # CONFIG_ISDN is not set
> CONFIG_PHONE=y
> CONFIG_PHONE_IXJ=m
> 
> #
> # Input device support
> #
> CONFIG_INPUT=y
> CONFIG_INPUT_FF_MEMLESS=y
> CONFIG_INPUT_POLLDEV=m
> 
> #
> # Userland interfaces
> #
> CONFIG_INPUT_MOUSEDEV=y
> # CONFIG_INPUT_MOUSEDEV_PSAUX is not set
> CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
> CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
> CONFIG_INPUT_JOYDEV=m
> CONFIG_INPUT_EVDEV=y
> CONFIG_INPUT_EVBUG=m
> 
> #
> # Input Device Drivers
> #
> CONFIG_INPUT_KEYBOARD=y
> CONFIG_KEYBOARD_ATKBD=y
> # CONFIG_KEYBOARD_SUNKBD is not set
> # CONFIG_KEYBOARD_LKKBD is not set
> CONFIG_KEYBOARD_XTKBD=m
> CONFIG_KEYBOARD_NEWTON=m
> # CONFIG_KEYBOARD_STOWAWAY is not set
> # CONFIG_INPUT_MOUSE is not set
> # CONFIG_INPUT_JOYSTICK is not set
> # CONFIG_INPUT_TABLET is not set
> # CONFIG_INPUT_TOUCHSCREEN is not set
> # CONFIG_INPUT_MISC is not set
> 
> #
> # Hardware I/O ports
> #
> CONFIG_SERIO=y
> CONFIG_SERIO_I8042=y
> CONFIG_SERIO_SERPORT=m
> # CONFIG_SERIO_CT82C710 is not set
> CONFIG_SERIO_PARKBD=m
> CONFIG_SERIO_PCIPS2=m
> CONFIG_SERIO_LIBPS2=y
> CONFIG_SERIO_RAW=m
> CONFIG_GAMEPORT=y
> CONFIG_GAMEPORT_NS558=y
> # CONFIG_GAMEPORT_L4 is not set
> # CONFIG_GAMEPORT_EMU10K1 is not set
> # CONFIG_GAMEPORT_FM801 is not set
> 
> #
> # Character devices
> #
> CONFIG_VT=y
> CONFIG_VT_CONSOLE=y
> CONFIG_HW_CONSOLE=y
> # CONFIG_VT_HW_CONSOLE_BINDING is not set
> CONFIG_SERIAL_NONSTANDARD=y
> CONFIG_COMPUTONE=y
> # CONFIG_ROCKETPORT is not set
> CONFIG_CYCLADES=y
> # CONFIG_DIGIEPCA is not set
> CONFIG_MOXA_INTELLIO=m
> # CONFIG_MOXA_SMARTIO is not set
> CONFIG_MOXA_SMARTIO_NEW=m
> # CONFIG_ISI is not set
> # CONFIG_SYNCLINK is not set
> # CONFIG_SYNCLINKMP is not set
> # CONFIG_SYNCLINK_GT is not set
> # CONFIG_N_HDLC is not set
> CONFIG_RISCOM8=y
> CONFIG_SPECIALIX=y
> # CONFIG_SPECIALIX_RTSCTS is not set
> CONFIG_SX=m
> # CONFIG_RIO is not set
> CONFIG_STALDRV=y
> # CONFIG_STALLION is not set
> CONFIG_ISTALLION=m
> 
> #
> # Serial drivers
> #
> CONFIG_SERIAL_8250=m
> CONFIG_FIX_EARLYCON_MEM=y
> CONFIG_SERIAL_8250_PCI=m
> CONFIG_SERIAL_8250_NR_UARTS=4
> CONFIG_SERIAL_8250_RUNTIME_UARTS=4
> CONFIG_SERIAL_8250_EXTENDED=y
> # CONFIG_SERIAL_8250_MANY_PORTS is not set
> CONFIG_SERIAL_8250_SHARE_IRQ=y
> CONFIG_SERIAL_8250_DETECT_IRQ=y
> # CONFIG_SERIAL_8250_RSA is not set
> # CONFIG_SERIAL_8250_MCA is not set
> 
> #
> # Non-8250 serial port support
> #
> CONFIG_SERIAL_CORE=m
> # CONFIG_SERIAL_JSM is not set
> CONFIG_UNIX98_PTYS=y
> # CONFIG_LEGACY_PTYS is not set
> CONFIG_PRINTER=m
> # CONFIG_LP_CONSOLE is not set
> CONFIG_PPDEV=m
> CONFIG_TIPAR=y
> # CONFIG_IPMI_HANDLER is not set
> CONFIG_HW_RANDOM=y
> CONFIG_HW_RANDOM_INTEL=m
> # CONFIG_HW_RANDOM_AMD is not set
> CONFIG_HW_RANDOM_GEODE=y
> CONFIG_HW_RANDOM_VIA=m
> CONFIG_NVRAM=y
> CONFIG_RTC=m
> CONFIG_GEN_RTC=y
> # CONFIG_GEN_RTC_X is not set
> CONFIG_R3964=m
> CONFIG_APPLICOM=y
> CONFIG_MWAVE=m
> # CONFIG_SCx200_GPIO is not set
> CONFIG_PC8736x_GPIO=m
> CONFIG_NSC_GPIO=m
> CONFIG_CS5535_GPIO=y
> CONFIG_RAW_DRIVER=m
> CONFIG_MAX_RAW_DEVS=256
> CONFIG_HANGCHECK_TIMER=m
> CONFIG_DEVPORT=y
> # CONFIG_I2C is not set
> 
> #
> # SPI support
> #
> CONFIG_SPI=y
> CONFIG_SPI_MASTER=y
> 
> #
> # SPI Master Controller Drivers
> #
> 
> #
> # SPI Protocol Masters
> #
> CONFIG_SPI_AT25=m
> CONFIG_SPI_TLE62X0=m
> CONFIG_W1=y
> CONFIG_W1_CON=y
> 
> #
> # 1-wire Bus Masters
> #
> CONFIG_W1_MASTER_MATROX=y
> # CONFIG_W1_MASTER_DS2490 is not set
> 
> #
> # 1-wire Slaves
> #
> # CONFIG_W1_SLAVE_THERM is not set
> CONFIG_W1_SLAVE_SMEM=m
> # CONFIG_W1_SLAVE_DS2433 is not set
> CONFIG_W1_SLAVE_DS2760=y
> CONFIG_POWER_SUPPLY=y
> # CONFIG_POWER_SUPPLY_DEBUG is not set
> # CONFIG_PDA_POWER is not set
> CONFIG_BATTERY_DS2760=y
> # CONFIG_HWMON is not set
> # CONFIG_WATCHDOG is not set
> 
> #
> # Sonics Silicon Backplane
> #
> CONFIG_SSB_POSSIBLE=y
> CONFIG_SSB=m
> CONFIG_SSB_PCIHOST_POSSIBLE=y
> CONFIG_SSB_PCIHOST=y
> # CONFIG_SSB_DEBUG is not set
> CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
> # CONFIG_SSB_DRIVER_PCICORE is not set
> 
> #
> # Multifunction device drivers
> #
> # CONFIG_MFD_SM501 is not set
> 
> #
> # Multimedia devices
> #
> CONFIG_VIDEO_DEV=m
> CONFIG_VIDEO_V4L1=y
> CONFIG_VIDEO_V4L1_COMPAT=y
> CONFIG_VIDEO_V4L2=y
> # CONFIG_VIDEO_CAPTURE_DRIVERS is not set
> # CONFIG_RADIO_ADAPTERS is not set
> CONFIG_DVB_CORE=y
> CONFIG_DVB_CORE_ATTACH=y
> CONFIG_DVB_CAPTURE_DRIVERS=y
> CONFIG_DVB_TTUSB_DEC=m
> # CONFIG_DVB_CINERGYT2 is not set
> 
> #
> # Supported DVB Frontends
> #
> 
> #
> # Customise DVB Frontends
> #
> # CONFIG_DVB_FE_CUSTOMISE is not set
> 
> #
> # DVB-S (satellite) frontends
> #
> 
> #
> # DVB-T (terrestrial) frontends
> #
> 
> #
> # DVB-C (cable) frontends
> #
> 
> #
> # ATSC (North American/Korean Terrestrial/Cable DTV) frontends
> #
> 
> #
> # Tuners/PLL support
> #
> 
> #
> # Miscellaneous devices
> #
> # CONFIG_DAB is not set
> 
> #
> # Graphics support
> #
> CONFIG_AGP=y
> CONFIG_AGP_ALI=y
> CONFIG_AGP_ATI=m
> CONFIG_AGP_AMD=y
> CONFIG_AGP_AMD64=y
> CONFIG_AGP_INTEL=y
> # CONFIG_AGP_NVIDIA is not set
> # CONFIG_AGP_SIS is not set
> # CONFIG_AGP_SWORKS is not set
> # CONFIG_AGP_VIA is not set
> CONFIG_AGP_EFFICEON=y
> CONFIG_DRM=y
> # CONFIG_DRM_TDFX is not set
> # CONFIG_DRM_R128 is not set
> # CONFIG_DRM_RADEON is not set
> # CONFIG_DRM_I810 is not set
> CONFIG_DRM_I830=m
> CONFIG_DRM_I915=m
> CONFIG_DRM_MGA=y
> # CONFIG_DRM_SIS is not set
> CONFIG_DRM_VIA=m
> CONFIG_DRM_SAVAGE=m
> CONFIG_VGASTATE=y
> # CONFIG_VIDEO_OUTPUT_CONTROL is not set
> CONFIG_FB=y
> # CONFIG_FIRMWARE_EDID is not set
> # CONFIG_FB_DDC is not set
> CONFIG_FB_CFB_FILLRECT=y
> CONFIG_FB_CFB_COPYAREA=y
> CONFIG_FB_CFB_IMAGEBLIT=y
> # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
> CONFIG_FB_SYS_FILLRECT=y
> CONFIG_FB_SYS_COPYAREA=y
> CONFIG_FB_SYS_IMAGEBLIT=y
> CONFIG_FB_SYS_FOPS=y
> CONFIG_FB_DEFERRED_IO=y
> CONFIG_FB_SVGALIB=m
> # CONFIG_FB_MACMODES is not set
> CONFIG_FB_BACKLIGHT=y
> CONFIG_FB_MODE_HELPERS=y
> CONFIG_FB_TILEBLITTING=y
> 
> #
> # Frame buffer hardware drivers
> #
> # CONFIG_FB_CIRRUS is not set
> # CONFIG_FB_PM2 is not set
> CONFIG_FB_CYBER2000=y
> # CONFIG_FB_ARC is not set
> CONFIG_FB_ASILIANT=y
> # CONFIG_FB_IMSTT is not set
> CONFIG_FB_VGA16=m
> # CONFIG_FB_UVESA is not set
> # CONFIG_FB_VESA is not set
> CONFIG_FB_HECUBA=m
> # CONFIG_FB_HGA is not set
> CONFIG_FB_S1D13XXX=y
> # CONFIG_FB_NVIDIA is not set
> # CONFIG_FB_RIVA is not set
> CONFIG_FB_LE80578=y
> CONFIG_FB_CARILLO_RANCH=m
> CONFIG_FB_MATROX=y
> CONFIG_FB_MATROX_MILLENIUM=y
> CONFIG_FB_MATROX_MYSTIQUE=y
> CONFIG_FB_MATROX_G=y
> # CONFIG_FB_MATROX_I2C is not set
> CONFIG_FB_MATROX_MULTIHEAD=y
> # CONFIG_FB_RADEON is not set
> CONFIG_FB_ATY128=y
> CONFIG_FB_ATY128_BACKLIGHT=y
> CONFIG_FB_ATY=m
> CONFIG_FB_ATY_CT=y
> # CONFIG_FB_ATY_GENERIC_LCD is not set
> # CONFIG_FB_ATY_GX is not set
> CONFIG_FB_ATY_BACKLIGHT=y
> CONFIG_FB_S3=m
> # CONFIG_FB_SIS is not set
> CONFIG_FB_NEOMAGIC=y
> CONFIG_FB_KYRO=y
> CONFIG_FB_3DFX=m
> # CONFIG_FB_VOODOO1 is not set
> CONFIG_FB_VT8623=m
> CONFIG_FB_CYBLA=y
> CONFIG_FB_TRIDENT=m
> # CONFIG_FB_ARK is not set
> CONFIG_FB_VIRTUAL=y
> CONFIG_BACKLIGHT_LCD_SUPPORT=y
> # CONFIG_LCD_CLASS_DEVICE is not set
> CONFIG_BACKLIGHT_CLASS_DEVICE=y
> CONFIG_BACKLIGHT_CORGI=m
> CONFIG_BACKLIGHT_PROGEAR=y
> 
> #
> # Display device support
> #
> # CONFIG_DISPLAY_SUPPORT is not set
> 
> #
> # Console display driver support
> #
> CONFIG_VGA_CONSOLE=y
> CONFIG_VGACON_SOFT_SCROLLBACK=y
> CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
> CONFIG_VIDEO_SELECT=y
> CONFIG_DUMMY_CONSOLE=y
> CONFIG_FRAMEBUFFER_CONSOLE=y
> # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
> # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
> CONFIG_FONTS=y
> # CONFIG_FONT_8x8 is not set
> CONFIG_FONT_8x16=y
> CONFIG_FONT_6x11=y
> # CONFIG_FONT_7x14 is not set
> CONFIG_FONT_PEARL_8x8=y
> CONFIG_FONT_ACORN_8x8=y
> CONFIG_FONT_MINI_4x6=y
> # CONFIG_FONT_SUN8x16 is not set
> CONFIG_FONT_SUN12x22=y
> CONFIG_FONT_10x18=y
> # CONFIG_LOGO is not set
> 
> #
> # Sound
> #
> CONFIG_SOUND=m
> 
> #
> # Advanced Linux Sound Architecture
> #
> # CONFIG_SND is not set
> 
> #
> # Open Sound System
> #
> # CONFIG_SOUND_PRIME is not set
> CONFIG_HID_SUPPORT=y
> CONFIG_HID=y
> CONFIG_HID_DEBUG=y
> # CONFIG_HIDRAW is not set
> 
> #
> # USB Input Devices
> #
> CONFIG_USB_HID=y
> CONFIG_USB_HIDINPUT_POWERBOOK=y
> CONFIG_USB_HIDDEV=y
> CONFIG_USB_SUPPORT=y
> CONFIG_USB_ARCH_HAS_HCD=y
> CONFIG_USB_ARCH_HAS_OHCI=y
> CONFIG_USB_ARCH_HAS_EHCI=y
> CONFIG_USB=y
> # CONFIG_USB_DEBUG is not set
> 
> #
> # Miscellaneous USB options
> #
> CONFIG_USB_DEVICEFS=y
> CONFIG_USB_DEVICE_CLASS=y
> 
> #
> # USB Host Controller Drivers
> #
> CONFIG_USB_EHCI_HCD=m
> # CONFIG_USB_ISP116X_HCD is not set
> CONFIG_USB_OHCI_HCD=y
> # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
> # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
> CONFIG_USB_OHCI_LITTLE_ENDIAN=y
> # CONFIG_USB_UHCI_HCD is not set
> # CONFIG_USB_U132_HCD is not set
> # CONFIG_USB_SL811_HCD is not set
> # CONFIG_USB_R8A66597_HCD is not set
> 
> #
> # USB Device Class drivers
> #
> CONFIG_USB_ACM=m
> CONFIG_USB_PRINTER=y
> 
> #
> # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
> #
> 
> #
> # may also be needed; see USB_STORAGE Help for more information
> #
> # CONFIG_USB_LIBUSUAL is not set
> 
> #
> # USB Imaging devices
> #
> CONFIG_USB_MON=y
> 
> #
> # USB port drivers
> #
> CONFIG_USB_USS720=y
> 
> #
> # USB Serial Converter support
> #
> CONFIG_USB_SERIAL=y
> CONFIG_USB_SERIAL_GENERIC=y
> CONFIG_USB_SERIAL_AIRPRIME=m
> CONFIG_USB_SERIAL_BELKIN=y
> CONFIG_USB_SERIAL_CH341=m
> # CONFIG_USB_SERIAL_WHITEHEAT is not set
> CONFIG_USB_SERIAL_DIGI_ACCELEPORT=y
> CONFIG_USB_SERIAL_EMPEG=y
> CONFIG_USB_SERIAL_FUNSOFT=m
> CONFIG_USB_SERIAL_VISOR=m
> CONFIG_USB_SERIAL_IPAQ=m
> CONFIG_USB_SERIAL_EDGEPORT=m
> # CONFIG_USB_SERIAL_EDGEPORT_TI is not set
> CONFIG_USB_SERIAL_GARMIN=y
> # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
> CONFIG_USB_SERIAL_KEYSPAN=y
> CONFIG_USB_SERIAL_KEYSPAN_MPR=y
> # CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
> # CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
> CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
> # CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
> # CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
> # CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
> CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
> CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
> # CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set
> CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
> CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
> # CONFIG_USB_SERIAL_KOBIL_SCT is not set
> CONFIG_USB_SERIAL_MCT_U232=y
> # CONFIG_USB_SERIAL_MOS7720 is not set
> CONFIG_USB_SERIAL_MOS7840=m
> CONFIG_USB_SERIAL_NAVMAN=m
> # CONFIG_USB_SERIAL_PL2303 is not set
> CONFIG_USB_SERIAL_OTI6858=y
> CONFIG_USB_SERIAL_HP4X=y
> CONFIG_USB_SERIAL_SIERRAWIRELESS=m
> CONFIG_USB_SERIAL_TI=m
> CONFIG_USB_SERIAL_XIRCOM=m
> CONFIG_USB_SERIAL_OPTION=y
> # CONFIG_USB_SERIAL_DEBUG is not set
> CONFIG_USB_EZUSB=y
> 
> #
> # USB Miscellaneous drivers
> #
> # CONFIG_USB_EMI62 is not set
> CONFIG_USB_EMI26=y
> CONFIG_USB_LCD=m
> CONFIG_USB_BERRY_CHARGE=y
> CONFIG_USB_LED=y
> CONFIG_USB_CYPRESS_CY7C63=m
> CONFIG_USB_CYTHERM=m
> # CONFIG_USB_PHIDGET is not set
> CONFIG_USB_IDMOUSE=m
> CONFIG_USB_FTDI_ELAN=y
> CONFIG_USB_APPLEDISPLAY=y
> CONFIG_USB_SISUSBVGA=m
> # CONFIG_USB_SISUSBVGA_CON is not set
> CONFIG_USB_LD=m
> # CONFIG_USB_TRANCEVIBRATOR is not set
> CONFIG_USB_IOWARRIOR=m
> 
> #
> # USB DSL modem support
> #
> 
> #
> # USB Gadget Support
> #
> CONFIG_USB_GADGET=m
> # CONFIG_USB_GADGET_DEBUG_FILES is not set
> # CONFIG_USB_GADGET_DEBUG_FS is not set
> CONFIG_USB_GADGET_SELECTED=y
> # CONFIG_USB_GADGET_AMD5536UDC is not set
> # CONFIG_USB_GADGET_ATMEL_USBA is not set
> # CONFIG_USB_GADGET_FSL_USB2 is not set
> # CONFIG_USB_GADGET_NET2280 is not set
> # CONFIG_USB_GADGET_PXA2XX is not set
> CONFIG_USB_GADGET_M66592=y
> CONFIG_USB_M66592=m
> # CONFIG_USB_GADGET_GOKU is not set
> # CONFIG_USB_GADGET_LH7A40X is not set
> # CONFIG_USB_GADGET_OMAP is not set
> # CONFIG_USB_GADGET_S3C2410 is not set
> # CONFIG_USB_GADGET_AT91 is not set
> # CONFIG_USB_GADGET_DUMMY_HCD is not set
> CONFIG_USB_GADGET_DUALSPEED=y
> # CONFIG_USB_ZERO is not set
> # CONFIG_USB_ETH is not set
> # CONFIG_USB_GADGETFS is not set
> # CONFIG_USB_FILE_STORAGE is not set
> CONFIG_USB_G_SERIAL=m
> # CONFIG_USB_MIDI_GADGET is not set
> CONFIG_MMC=m
> # CONFIG_MMC_DEBUG is not set
> # CONFIG_MMC_UNSAFE_RESUME is not set
> 
> #
> # MMC/SD Card Drivers
> #
> CONFIG_MMC_BLOCK=m
> # CONFIG_MMC_BLOCK_BOUNCE is not set
> CONFIG_SDIO_UART=m
> 
> #
> # MMC/SD Host Controller Drivers
> #
> # CONFIG_MMC_WBSD is not set
> # CONFIG_NEW_LEDS is not set
> # CONFIG_INFINIBAND is not set
> # CONFIG_RTC_CLASS is not set
> # CONFIG_DMADEVICES is not set
> CONFIG_AUXDISPLAY=y
> CONFIG_VIRTUALIZATION=y
> 
> #
> # Userspace I/O
> #
> CONFIG_UIO=y
> # CONFIG_UIO_CIF is not set
> 
> #
> # File systems
> #
> CONFIG_EXT2_FS=y
> CONFIG_EXT2_FS_XATTR=y
> # CONFIG_EXT2_FS_POSIX_ACL is not set
> # CONFIG_EXT2_FS_SECURITY is not set
> # CONFIG_EXT2_FS_XIP is not set
> CONFIG_EXT3_FS=m
> # CONFIG_EXT3_FS_XATTR is not set
> CONFIG_JBD=m
> # CONFIG_JBD_DEBUG is not set
> CONFIG_FS_MBCACHE=y
> CONFIG_REISERFS_FS=m
> # CONFIG_REISERFS_CHECK is not set
> CONFIG_REISERFS_PROC_INFO=y
> CONFIG_REISERFS_FS_XATTR=y
> # CONFIG_REISERFS_FS_POSIX_ACL is not set
> # CONFIG_REISERFS_FS_SECURITY is not set
> CONFIG_JFS_FS=y
> CONFIG_JFS_POSIX_ACL=y
> # CONFIG_JFS_SECURITY is not set
> # CONFIG_JFS_DEBUG is not set
> CONFIG_JFS_STATISTICS=y
> CONFIG_FS_POSIX_ACL=y
> CONFIG_XFS_FS=m
> # CONFIG_XFS_QUOTA is not set
> CONFIG_XFS_SECURITY=y
> # CONFIG_XFS_POSIX_ACL is not set
> CONFIG_XFS_RT=y
> # CONFIG_OCFS2_FS is not set
> CONFIG_MINIX_FS=m
> # CONFIG_ROMFS_FS is not set
> # CONFIG_INOTIFY is not set
> CONFIG_QUOTA=y
> # CONFIG_QUOTA_NETLINK_INTERFACE is not set
> # CONFIG_PRINT_QUOTA_WARNING is not set
> CONFIG_QFMT_V1=m
> # CONFIG_QFMT_V2 is not set
> CONFIG_QUOTACTL=y
> CONFIG_DNOTIFY=y
> CONFIG_AUTOFS_FS=m
> CONFIG_AUTOFS4_FS=m
> # CONFIG_FUSE_FS is not set
> CONFIG_GENERIC_ACL=y
> 
> #
> # CD-ROM/DVD Filesystems
> #
> CONFIG_ISO9660_FS=y
> # CONFIG_JOLIET is not set
> CONFIG_ZISOFS=y
> CONFIG_UDF_FS=y
> CONFIG_UDF_NLS=y
> 
> #
> # DOS/FAT/NT Filesystems
> #
> CONFIG_FAT_FS=y
> CONFIG_MSDOS_FS=y
> CONFIG_VFAT_FS=m
> CONFIG_FAT_DEFAULT_CODEPAGE=437
> CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
> CONFIG_NTFS_FS=m
> # CONFIG_NTFS_DEBUG is not set
> CONFIG_NTFS_RW=y
> 
> #
> # Pseudo filesystems
> #
> CONFIG_PROC_FS=y
> # CONFIG_PROC_KCORE is not set
> CONFIG_PROC_SYSCTL=y
> CONFIG_SYSFS=y
> CONFIG_TMPFS=y
> CONFIG_TMPFS_POSIX_ACL=y
> CONFIG_HUGETLBFS=y
> CONFIG_HUGETLB_PAGE=y
> 
> #
> # Miscellaneous filesystems
> #
> CONFIG_HFSPLUS_FS=y
> CONFIG_CRAMFS=m
> CONFIG_VXFS_FS=m
> # CONFIG_HPFS_FS is not set
> CONFIG_QNX4FS_FS=m
> CONFIG_SYSV_FS=y
> CONFIG_UFS_FS=m
> # CONFIG_UFS_DEBUG is not set
> # CONFIG_NETWORK_FILESYSTEMS is not set
> 
> #
> # Partition Types
> #
> # CONFIG_PARTITION_ADVANCED is not set
> CONFIG_MSDOS_PARTITION=y
> CONFIG_NLS=y
> CONFIG_NLS_DEFAULT="iso8859-1"
> CONFIG_NLS_CODEPAGE_437=m
> # CONFIG_NLS_CODEPAGE_737 is not set
> CONFIG_NLS_CODEPAGE_775=y
> CONFIG_NLS_CODEPAGE_850=m
> CONFIG_NLS_CODEPAGE_852=y
> CONFIG_NLS_CODEPAGE_855=y
> CONFIG_NLS_CODEPAGE_857=y
> CONFIG_NLS_CODEPAGE_860=m
> CONFIG_NLS_CODEPAGE_861=m
> # CONFIG_NLS_CODEPAGE_862 is not set
> # CONFIG_NLS_CODEPAGE_863 is not set
> # CONFIG_NLS_CODEPAGE_864 is not set
> CONFIG_NLS_CODEPAGE_865=y
> # CONFIG_NLS_CODEPAGE_866 is not set
> CONFIG_NLS_CODEPAGE_869=m
> CONFIG_NLS_CODEPAGE_936=y
> CONFIG_NLS_CODEPAGE_950=y
> CONFIG_NLS_CODEPAGE_932=m
> CONFIG_NLS_CODEPAGE_949=y
> # CONFIG_NLS_CODEPAGE_874 is not set
> CONFIG_NLS_ISO8859_8=m
> # CONFIG_NLS_CODEPAGE_1250 is not set
> CONFIG_NLS_CODEPAGE_1251=m
> # CONFIG_NLS_ASCII is not set
> # CONFIG_NLS_ISO8859_1 is not set
> # CONFIG_NLS_ISO8859_2 is not set
> # CONFIG_NLS_ISO8859_3 is not set
> # CONFIG_NLS_ISO8859_4 is not set
> # CONFIG_NLS_ISO8859_5 is not set
> CONFIG_NLS_ISO8859_6=y
> # CONFIG_NLS_ISO8859_7 is not set
> # CONFIG_NLS_ISO8859_9 is not set
> CONFIG_NLS_ISO8859_13=y
> # CONFIG_NLS_ISO8859_14 is not set
> CONFIG_NLS_ISO8859_15=m
> CONFIG_NLS_KOI8_R=y
> CONFIG_NLS_KOI8_U=y
> CONFIG_NLS_UTF8=y
> CONFIG_INSTRUMENTATION=y
> CONFIG_PROFILING=y
> CONFIG_OPROFILE=y
> CONFIG_KPROBES=y
> CONFIG_MARKERS=y
> 
> #
> # Kernel hacking
> #
> CONFIG_TRACE_IRQFLAGS_SUPPORT=y
> CONFIG_PRINTK_TIME=y
> CONFIG_ENABLE_WARN_DEPRECATED=y
> CONFIG_ENABLE_MUST_CHECK=y
> CONFIG_MAGIC_SYSRQ=y
> CONFIG_UNUSED_SYMBOLS=y
> CONFIG_DEBUG_FS=y
> CONFIG_HEADERS_CHECK=y
> # CONFIG_DEBUG_KERNEL is not set
> CONFIG_DEBUG_BUGVERBOSE=y
> # CONFIG_SAMPLES is not set
> CONFIG_EARLY_PRINTK=y
> CONFIG_DOUBLEFAULT=y
> 
> #
> # Security options
> #
> # CONFIG_KEYS is not set
> # CONFIG_SECURITY is not set
> CONFIG_CRYPTO=y
> CONFIG_CRYPTO_ALGAPI=y
> CONFIG_CRYPTO_ABLKCIPHER=y
> CONFIG_CRYPTO_BLKCIPHER=y
> CONFIG_CRYPTO_HASH=y
> CONFIG_CRYPTO_MANAGER=y
> CONFIG_CRYPTO_HMAC=y
> # CONFIG_CRYPTO_NULL is not set
> CONFIG_CRYPTO_MD4=m
> CONFIG_CRYPTO_MD5=y
> CONFIG_CRYPTO_SHA1=y
> # CONFIG_CRYPTO_SHA256 is not set
> CONFIG_CRYPTO_SHA512=y
> CONFIG_CRYPTO_WP512=m
> # CONFIG_CRYPTO_TGR192 is not set
> CONFIG_CRYPTO_ECB=m
> CONFIG_CRYPTO_CBC=y
> CONFIG_CRYPTO_PCBC=y
> CONFIG_CRYPTO_CRYPTD=y
> CONFIG_CRYPTO_DES=y
> CONFIG_CRYPTO_FCRYPT=y
> CONFIG_CRYPTO_BLOWFISH=y
> CONFIG_CRYPTO_TWOFISH=y
> CONFIG_CRYPTO_TWOFISH_COMMON=y
> # CONFIG_CRYPTO_TWOFISH_586 is not set
> CONFIG_CRYPTO_SERPENT=y
> CONFIG_CRYPTO_AES=y
> CONFIG_CRYPTO_AES_586=m
> CONFIG_CRYPTO_CAST5=m
> CONFIG_CRYPTO_CAST6=y
> CONFIG_CRYPTO_TEA=y
> # CONFIG_CRYPTO_ARC4 is not set
> CONFIG_CRYPTO_KHAZAD=m
> CONFIG_CRYPTO_ANUBIS=y
> CONFIG_CRYPTO_SEED=m
> CONFIG_CRYPTO_DEFLATE=y
> CONFIG_CRYPTO_MICHAEL_MIC=m
> CONFIG_CRYPTO_CRC32C=y
> # CONFIG_CRYPTO_CAMELLIA is not set
> CONFIG_CRYPTO_TEST=m
> # CONFIG_CRYPTO_AUTHENC is not set
> # CONFIG_CRYPTO_HW is not set
> 
> #
> # Library routines
> #
> CONFIG_BITREVERSE=y
> CONFIG_CRC_CCITT=m
> CONFIG_CRC16=m
> CONFIG_CRC_ITU_T=y
> CONFIG_CRC32=y
> # CONFIG_CRC7 is not set
> CONFIG_LIBCRC32C=y
> CONFIG_AUDIT_GENERIC=y
> CONFIG_ZLIB_INFLATE=y
> CONFIG_ZLIB_DEFLATE=y
> CONFIG_TEXTSEARCH=y
> CONFIG_TEXTSEARCH_KMP=m
> CONFIG_TEXTSEARCH_BM=m
> CONFIG_TEXTSEARCH_FSM=m
> CONFIG_PLIST=y
> CONFIG_HAS_IOMEM=y
> CONFIG_HAS_IOPORT=y
> CONFIG_HAS_DMA=y
> CONFIG_GENERIC_HARDIRQS=y
> CONFIG_GENERIC_IRQ_PROBE=y
> CONFIG_X86_BIOS_REBOOT=y
> CONFIG_KTIME_SCALAR=y


---
~Randy

^ permalink raw reply

* Re: [BUG] in inet6_create
From: Roel Kluin @ 2007-11-01 21:14 UTC (permalink / raw)
  To: netdev; +Cc: linux-net
In-Reply-To: <472A3218.20708@tiscali.nl>

Roel Kluin wrote:
> I got this bug recently, I am not sure whether this is related to any previously 
> reported ones. It was a recently pulled git kernel. Also I have been hacking my
> kernel a bit lately, but I think that I haven't got any changes in the currently
> running kernel.
> 
> FYI: my network card was not running (module not loaded, and I just started 
> thunderbird)
> 
> Roel
> 
> More information needed?
> --

probably mailing to linux-net was more appropriate

> 
> NET: Registered protocol family 10
>  BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
>  printing eip: f881034f *pde = 00000000 
>  Oops: 0000 [#1] 
>  Modules linked in: ipv6
>  
>  Pid: 17080, comm: modprobe Not tainted (2.6.24-rc1 #1)
>  EIP: 0060:[<f881034f>] EFLAGS: 00010293 CPU: 0
>  EIP is at inet6_create+0x5f/0x340 [ipv6]
>  EAX: 00000000 EBX: 00000000 ECX: f7621fd5 EDX: f8842e78
>  ESI: ffffffff EDI: 0000003a EBP: ffffff9f ESP: d780de74
>   DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
>  Process modprobe (pid: 17080, ti=d780c000 task=c3a86000 task.ti=d780c000)
>  Stack: 00000000 00000246 00000246 00000003 c60e22a0 00000246 00000000 00000000 
>         f88410fc ffffffea 00000003 c063f680 c028d597 00000002 00000001 c028d52c 
>         c60e22a0 00000003 f8842d00 00000032 00000000 c028d6a7 0000003a f88438c0 
>  Call Trace:
>   [<c028d597>] __sock_create+0xf7/0x1e0
>   [<c028d52c>] __sock_create+0x8c/0x1e0
>   [<c028d6a7>] sock_create_kern+0x27/0x30
>   [<f88457af>] icmpv6_init+0x1f/0xa0 [ipv6]
>   [<f884513f>] inet6_init+0x13f/0x2f0 [ipv6]
>   [<c0144f73>] sys_init_module+0x173/0x16c0
>   [<c0132860>] autoremove_wake_function+0x0/0x50
>   [<c0171ef1>] sys_read+0x41/0x70
>   [<c010818e>] syscall_call+0x7/0xb
>   =======================
>  Code: c0 85 c9 0f 84 12 02 00 00 c7 44 24 18 00 00 00 00 0f bf c6 c1 e0 03 8b 98 80 2e 84 f8 8d 90 80 2e 84 f8 89 5c 24 1c 8b 44 24 1c <8b> 00 0f 18 00 90 39 d3 bd a2 ff ff ff 75 36 e9 f3 01 00 00 85 
>  EIP: [<f881034f>] inet6_create+0x5f/0x340 [ipv6] SS:ESP 0068:d780de74
>  BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
>  printing eip: f881034f *pde = 00000000 
>  Oops: 0000 [#2] 
>  Modules linked in: ipv6
>  
>  Pid: 17078, comm: thunderbird-bin Tainted: G      D (2.6.24-rc1 #1)
>  EIP: 0060:[<f881034f>] EFLAGS: 00210293 CPU: 0
>  EIP is at inet6_create+0x5f/0x340 [ipv6]
>  EAX: 00000000 EBX: 00000000 ECX: f7621fd5 EDX: f8842e78
>  ESI: ffffffff EDI: 00000000 EBP: ffffff9f ESP: c2801f00
>   DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
>  Process thunderbird-bin (pid: 17078, ti=c2800000 task=c20bf000 task.ti=c2800000)
>  Stack: c0185024 00200246 00200246 00000001 c60e2000 00200246 00000000 00000000 
>         f88410fc ffffffea 00000001 c063f680 c028d597 00000002 00000001 c028d52c 
>         c60e2000 00000001 0000000a 08b095bc c2800000 c028d6e9 00000000 c2801f74 
>  Call Trace:
>   [<c0185024>] new_inode+0x24/0x90
>   [<c028d597>] __sock_create+0xf7/0x1e0
>   [<c028d52c>] __sock_create+0x8c/0x1e0
>   [<c028d6e9>] sock_create+0x39/0x50
>   [<c028d89c>] sys_socket+0x1c/0x50
>   [<c028e248>] sys_socketcall+0x68/0x280
>   [<c013da9b>] trace_hardirqs_on+0xbb/0x160
>   [<c011b80d>] do_sched_setscheduler+0xad/0xc0
>   [<c01081fb>] restore_nocheck+0x12/0x15
>   [<c010818e>] syscall_call+0x7/0xb
>   =======================
>  Code: c0 85 c9 0f 84 12 02 00 00 c7 44 24 18 00 00 00 00 0f bf c6 c1 e0 03 8b 98 80 2e 84 f8 8d 90 80 2e 84 f8 89 5c 24 1c 8b 44 24 1c <8b> 00 0f 18 00 90 39 d3 bd a2 ff ff ff 75 36 e9 f3 01 00 00 85 
>  EIP: [<f881034f>] inet6_create+0x5f/0x340 [ipv6] SS:ESP 0068:c2801f00
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


^ permalink raw reply

* [PATCH] - e1000_ethtool.c - convert macros to functions
From: Joe Perches @ 2007-11-01 21:16 UTC (permalink / raw)
  To: Auke Kok; +Cc: netdev, e1000-devel, Jeff Garzik

Minimal macro to function conversion in e1000_ethtool.c

Adds functions reg_pattern_test and reg_set_and_check
Changes REG_PATTERN_TEST and REG_SET_AND_CHECK macros
to call these functions.

Saves ~2.5KB

Compiled x86, untested (no hardware)

old:

$ size drivers/net/e1000/e1000_ethtool.o
   text    data     bss     dec     hex filename
  16778       0       0   16778    418a drivers/net/e1000/e1000_ethtool.o

new:

$ size drivers/net/e1000/e1000_ethtool.o
   text    data     bss     dec     hex filename
  14128       0       0   14128    3730 drivers/net/e1000/e1000_ethtool.o

Signed-off-by: Joe Perches <joe@perches.com>

---

 drivers/net/e1000/e1000_ethtool.c |   80 +++++++++++++++++++++++-------------
 1 files changed, 51 insertions(+), 29 deletions(-)

diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c
index 667f18b..830f0fb 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -728,39 +728,61 @@ err_setup:
 	return err;
 }
 
-#define REG_PATTERN_TEST(R, M, W)                                              \
-{                                                                              \
-	uint32_t pat, val;                                                     \
-	const uint32_t test[] = 					       \
-		{0x5A5A5A5A, 0xA5A5A5A5, 0x00000000, 0xFFFFFFFF};              \
-	for (pat = 0; pat < ARRAY_SIZE(test); pat++) {           	       \
-		E1000_WRITE_REG(&adapter->hw, R, (test[pat] & W));             \
-		val = E1000_READ_REG(&adapter->hw, R);                         \
-		if (val != (test[pat] & W & M)) {                              \
-			DPRINTK(DRV, ERR, "pattern test reg %04X failed: got " \
-			        "0x%08X expected 0x%08X\n",                    \
-			        E1000_##R, val, (test[pat] & W & M));          \
-			*data = (adapter->hw.mac_type < e1000_82543) ?         \
-				E1000_82542_##R : E1000_##R;                   \
-			return 1;                                              \
-		}                                                              \
-	}                                                                      \
+static bool reg_pattern_test(struct e1000_adapter *adapter, uint64_t *data,
+			     int reg, uint32_t mask, uint32_t write)
+{
+	static const uint32_t test[] =
+		{0x5A5A5A5A, 0xA5A5A5A5, 0x00000000, 0xFFFFFFFF};
+	uint8_t __iomem *address = adapter->hw.hw_addr + reg;
+	uint32_t read;
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(test); i++) {
+		writel(write & test[i], address);
+		read = readl(address);
+		if (read != (write & test[i] & mask)) {
+			DPRINTK(DRV, ERR, "pattern test reg %04X failed: "
+				"got 0x%08X expected 0x%08X\n",
+			        reg, read, (write & test[i] & mask));
+			*data = reg;
+			return true;
+		}
+	}
+	return false;
 }
 
-#define REG_SET_AND_CHECK(R, M, W)                                             \
-{                                                                              \
-	uint32_t val;                                                          \
-	E1000_WRITE_REG(&adapter->hw, R, W & M);                               \
-	val = E1000_READ_REG(&adapter->hw, R);                                 \
-	if ((W & M) != (val & M)) {                                            \
-		DPRINTK(DRV, ERR, "set/check reg %04X test failed: got 0x%08X "\
-		        "expected 0x%08X\n", E1000_##R, (val & M), (W & M));   \
-		*data = (adapter->hw.mac_type < e1000_82543) ?                 \
-			E1000_82542_##R : E1000_##R;                           \
-		return 1;                                                      \
-	}                                                                      \
+static bool reg_set_and_check(struct e1000_adapter *adapter, uint64_t *data,
+			      int reg, uint32_t mask, uint32_t write)
+{
+	uint8_t __iomem *address = adapter->hw.hw_addr + reg;
+	uint32_t read;
+
+	writel(write & mask, address);
+	read = readl(address);
+	if ((read & mask) != (write & mask)) {
+		DPRINTK(DRV, ERR, "set/check reg %04X test failed: "
+			"got 0x%08X expected 0x%08X\n",
+			reg, (read & mask), (write & mask));
+		*data = reg;
+		return true;
+	}
+	return false;
 }
 
+#define REG_PATTERN_TEST(reg, mask, write)			     \
+	if (reg_pattern_test(adapter, data,			     \
+			     (adapter->hw.mac_type >= e1000_82543)   \
+			     ? E1000_##reg : E1000_82542_##reg,	     \
+			     mask, write))			     \
+		return 1;
+
+#define REG_SET_AND_CHECK(reg, mask, write)			     \
+	if (reg_set_and_check(adapter, data,			     \
+			      (adapter->hw.mac_type >= e1000_82543)  \
+			      ? E1000_##reg : E1000_82542_##reg,     \
+			      mask, write))			     \
+		return 1;
+
 static int
 e1000_reg_test(struct e1000_adapter *adapter, uint64_t *data)
 {



^ permalink raw reply related

* Re: [PATCH] net: Add 405EX support to new EMAC driver
From: Stefan Roese @ 2007-11-01 21:31 UTC (permalink / raw)
  To: Josh Boyer; +Cc: benh, netdev, linuxppc-dev
In-Reply-To: <20071101160709.7e7c0181@weaponx.rchland.ibm.com>

On Thursday 01 November 2007, Josh Boyer wrote:
> > > -	if (dev->type != RGMII_AXON)
> > > -		return;
> > > -
> > >  	mutex_lock(&dev->lock);
> >
> > That will break 440GX boards that need to use the RGMII for data and the
> > ZMII for MDIO.
> >
> > You may want to change the name RGMII_AXON something like RGMII_HAS_MDIO
> > instead and set that for 405EX as well instead.
>
> And perhaps adding a comment about that since the meaning of that code
> isn't very obvious. That way people that aren't the original author
> of the driver don't get confused again.

Will do. I'll send a fixed version tomorrow.

Best regards,
Stefan

^ permalink raw reply

* Re: expected behavior of PF_PACKET on NETIF_F_HW_VLAN_RX device?
From: David Miller @ 2007-11-01 21:35 UTC (permalink / raw)
  To: greearb; +Cc: shemminger, djohnson+linux-kernel, linux-kernel, netdev, bguo
In-Reply-To: <4729EAFF.9050606@candelatech.com>

From: Ben Greear <greearb@candelatech.com>
Date: Thu, 01 Nov 2007 08:04:31 -0700

> David Miller wrote:
> > The hardware has stripped the VLAN header completely and has not
> > provided it to us at all.
> >   
> Do the NICs not save the QoS bits in the VLAN header anywhere that we could
> use to reconstitute the header?

You get the 16-bit VLAN tag.

^ permalink raw reply

* Re: [PATCH] - e1000_ethtool.c - convert macros to functions
From: Kok, Auke @ 2007-11-01 21:29 UTC (permalink / raw)
  To: Joe Perches; +Cc: Auke Kok, netdev, e1000-devel, Jeff Garzik
In-Reply-To: <1193951813.17956.3.camel@localhost>

Joe Perches wrote:
> Minimal macro to function conversion in e1000_ethtool.c
> 
> Adds functions reg_pattern_test and reg_set_and_check
> Changes REG_PATTERN_TEST and REG_SET_AND_CHECK macros
> to call these functions.
> 
> Saves ~2.5KB
> 
> Compiled x86, untested (no hardware)
> 
> old:
> 
> $ size drivers/net/e1000/e1000_ethtool.o
>    text    data     bss     dec     hex filename
>   16778       0       0   16778    418a drivers/net/e1000/e1000_ethtool.o
> 
> new:
> 
> $ size drivers/net/e1000/e1000_ethtool.o
>    text    data     bss     dec     hex filename
>   14128       0       0   14128    3730 drivers/net/e1000/e1000_ethtool.o
> 
> Signed-off-by: Joe Perches <joe@perches.com>



ok, looks good and it'll get tested with the e1000e version.

Thanks

Auke

^ permalink raw reply

* Re: expected behavior of PF_PACKET on NETIF_F_HW_VLAN_RX device?
From: Dave Johnson @ 2007-11-01 21:36 UTC (permalink / raw)
  To: Ben Greear; +Cc: David Miller, Stephen Hemminger, linux-kernel, netdev, bguo
In-Reply-To: <4729EAFF.9050606@candelatech.com>

Ben Greear writes:
> We should also define what a NIC should do with VLANs it doesn't
> explicitly know about.   I think it should pass them up the stack
> with VLAN tag intact, but again, perhaps there are reasons not to do
> that?

Unless the device also supports NETIF_F_HW_VLAN_FILTER, it has no idea
which vlans the kernel cares about, it's up to __vlan_hwaccel_rx().


Stephen Hemminger writes:
> The code in AF_PACKET should fix the skb before passing to user
> space so that there is no difference between accel and non-accel
> hardware.  Internal choices shouldn't leak to user space.  Ditto,
> the receive checksum offload should be fixed up as well.

yep.  bad csum on tx packets as reported by tcpdump is also an issue.


Ben Greear writes:
> Currently, VLAN devices offer the ability to 'reorder' the header
> and explicitly remove the VLAN header.  I assume we keep this
> feature and have the AF_PACKET logic check the device flags to see
> if it should insert the VLAN header for hw-accel vlans? 
> 
> Either way, if we sniff the underlying device, we should always get
> the VLAN header.

Yes, but it's more than just a packet socket issue.

A quick look through the hwaccel capable drivers (in 2.6.23) and most
are doing something like:

if (foo->vlgrp && packet_is_tagged)
  vlan_hwaccel_receive_skb(skb, foo->vlgrp, vlan_tag);
else
  netif_receive_skb(skb);

The important thing here is if the vlan group is NULL, the MAC must
be configured to NOT strip the tag.

users of NETIF_F_HW_VLAN_RX:
---------------------------
./drivers/net/8139cp.c:             looks ok
./drivers/net/acenic.c:             *1
./drivers/net/amd8111e.c:           unsure, probably *1
./drivers/net/atl1/atl1_main.c:     looks ok
./drivers/net/bnx2.c:               *2
./drivers/net/bonding/bond_main.c:  unsure, probably ok
./drivers/net/chelsio/cxgb2.c:      looks ok
./drivers/net/cxgb3/cxgb3_main.c:   looks ok
./drivers/net/e1000/e1000_main.c:   looks ok
./drivers/net/ehea/ehea_main.c:     unsure, probably ok
./drivers/net/forcedeth.c:          looks ok
./drivers/net/gianfar.c:            looks ok
./drivers/net/ixgb/ixgb_main.c:     looks ok
./drivers/net/ns83820.c:            unsure, probably ok
./drivers/net/r8169.c:              looks ok
./drivers/net/s2io.c:               *1
./drivers/net/sky2.c:               looks ok
./drivers/net/starfire.c:           unsure, probably ok
./drivers/net/tg3.c:                *2
./drivers/net/typhoon.c:            unsure, probably ok
./drivers/s390/net/qeth_main.c:     unsure, probably ok

*1:  Driver configures the MAC to strip TAGs even if vlan group is
     NULL. MAC strips the tag, but driver calls netif_rx() or
     netif_receive_skb() with the packet as untagged.  Kernel
     processes tagged packet as if it was received untagged.  Possible
     security issue.

*2:  If chip supports 'ASF', tag is always stripped (see *1 above).
     Looks ok if ASF is not supported. 


Ben Greear writes:
> Do the NICs not save the QoS bits in the VLAN header anywhere that
> we could use to reconstitute the header?

Most likely, __vlan_hwaccel_rx() gets the whole 16bit tag and sets
skb->priority from on it.


Besides the accidental removal with the drivers listed above when
there is no vlan group registerd, we're still back to the original
issue.

Having __vlan_hwaccel_rx() send to the base device would likely
require a copy of the skb (at least the head). That completely defeats
the point of hwaccel.

At a minimum, __vlan_hwaccel_rx() should probably add the vlan header
back on if doesn't find a vlan device.  This way no copy is needed,
just shove the header back on (we already have the full 16bits).  Once
re-added, send to the base device instead of dropping.

That would fix the unknown vlan issue, but known vlans would only go
to the vlan device not the base device.  Not sure of an easy fix for
this as af_packet can specifically bind to a specified base device.  I
don't this this would be much of an issue and probably doesn't need
fixing.

-- 
Dave Johnson
Starent Networks


^ permalink raw reply

* Re: [PATCH] INET : removes per bucket rwlock in tcp/dccp ehash table
From: David Miller @ 2007-11-01 21:46 UTC (permalink / raw)
  To: dada1; +Cc: shemminger, netdev, ak, acme
In-Reply-To: <472A12D0.4070401@cosmosbay.com>

From: Eric Dumazet <dada1@cosmosbay.com>
Date: Thu, 01 Nov 2007 18:54:24 +0100

> Stephen Hemminger a écrit :
> > Longterm is there any chance of using rcu for this? Seems like
> > it could be a big win.
> 
> This was discussed in the past, and I even believe some patch was proposed, 
> but some guys (including David) complained that RCU is well suited for 'mostly 
>   read' structures.
> 
> On some web server workloads, TCP hash table is constantly accessed in write 
> mode (socket creation, socket move to timewait state, socket  deleted...), and 
> RCU added overhead and poor cache re-use (because sockets must be placed on 
> RCU queue before reuse)
> 
> On these typical workload, hash table without RCU is still the best.

Right, and none of the submitted RCU attempts were correct, it's very
hard to get the synchronization right.

> Longterm changes would rather be based on Robert Olsson suggestion
> last year (trie based lookups and unified IP/TCP cache)
>
> Short term changes would be to be able to resize the TCP hash table (being 
> small at boot, and be able to grow it if necessary). Its current size on 
> modern machines is just insane.

Resizing the hash is also, unfortunately, very hard to implement
as well.


^ permalink raw reply

* Re: expected behavior of PF_PACKET on NETIF_F_HW_VLAN_RX device?
From: Rick Jones @ 2007-11-01 21:48 UTC (permalink / raw)
  To: Dave Johnson
  Cc: Ben Greear, David Miller, Stephen Hemminger, linux-kernel, netdev,
	bguo
In-Reply-To: <18218.18134.353553.189622@zeus.sw.starentnetworks.com>

>>The code in AF_PACKET should fix the skb before passing to user
>>space so that there is no difference between accel and non-accel
>>hardware.  Internal choices shouldn't leak to user space.  Ditto,
>>the receive checksum offload should be fixed up as well.
> 
> 
> yep.  bad csum on tx packets as reported by tcpdump is also an issue.

With TX CKO enabled, there isn't any checksum to fixup when a tx packet is 
sniffed, so I'm not sure what can be done in the kernel apart from an 
unpalatable "disable CKO and all which depend upon it when entering promiscuous 
mode."  Having the tap calculate a checksum would be equally bad for 
performance, and would frankly be incorrect anyway because it would give the 
user the false impression that was the checksum which went-out onto the wire.

One could I suppose try to ammend the information passed to allow tcpdump to say 
"oh, this was a tx packet on the same machine on which I am tracing so don't 
worry about checksum mismatch" but I have to wonder if it is _really_ worth it. 
Already someone has to deal with seeing TCP segments >> the MSS thanks to TSO. 
(Actually tcpdump got rather confused about that too since the IP length of 
those was 0, but IIRC we got that patched to use the length of zero as a "ah, 
this was TSO so wing it" heuristic.)

rick jones

^ permalink raw reply

* Re: [PATCH] INET : removes per bucket rwlock in tcp/dccp ehash table
From: David Miller @ 2007-11-01 21:52 UTC (permalink / raw)
  To: dada1; +Cc: rick.jones2, shemminger, netdev, ak, acme
In-Reply-To: <472A264F.8040201@cosmosbay.com>

From: Eric Dumazet <dada1@cosmosbay.com>
Date: Thu, 01 Nov 2007 20:17:35 +0100

> But if it was an issue, the spinlock array used in IP route cache
> would have the same problem and *someone* should already have
> complained...

I'd say that having a few MB less of rwlock cache lines to
touch offsets the issue even if it does exist.

^ permalink raw reply

* Re: expected behavior of PF_PACKET on NETIF_F_HW_VLAN_RX device?
From: David Miller @ 2007-11-01 21:58 UTC (permalink / raw)
  To: djohnson+linux-kernel; +Cc: greearb, shemminger, linux-kernel, netdev, bguo
In-Reply-To: <18218.18134.353553.189622@zeus.sw.starentnetworks.com>

From: Dave Johnson <djohnson+linux-kernel@sw.starentnetworks.com>
Date: Thu, 1 Nov 2007 17:36:22 -0400

> bad csum on tx packets as reported by tcpdump is also an issue.

We provide a tag to userspace that tcpdump should use to see that the
HW is going to checksum the packet, and therefore it should elide
trying to verify the checksums.

It's not a kernel issue.

^ permalink raw reply

* Re: expected behavior of PF_PACKET on NETIF_F_HW_VLAN_RX device?
From: David Miller @ 2007-11-01 21:59 UTC (permalink / raw)
  To: rick.jones2
  Cc: djohnson+linux-kernel, greearb, shemminger, linux-kernel, netdev,
	bguo
In-Reply-To: <472A49BD.6000802@hp.com>

From: Rick Jones <rick.jones2@hp.com>
Date: Thu, 01 Nov 2007 14:48:45 -0700

> One could I suppose try to ammend the information passed to allow
> tcpdump to say "oh, this was a tx packet on the same machine on
> which I am tracing so don't worry about checksum mismatch"

We do this already!


^ permalink raw reply

* Re: expected behavior of PF_PACKET on NETIF_F_HW_VLAN_RX device?
From: Rick Jones @ 2007-11-01 22:04 UTC (permalink / raw)
  To: David Miller
  Cc: djohnson+linux-kernel, greearb, shemminger, linux-kernel, netdev,
	bguo
In-Reply-To: <20071101.145956.63020380.davem@davemloft.net>

David Miller wrote:
> From: Rick Jones <rick.jones2@hp.com>
> Date: Thu, 01 Nov 2007 14:48:45 -0700
> 
> 
>>One could I suppose try to ammend the information passed to allow
>>tcpdump to say "oh, this was a tx packet on the same machine on
>>which I am tracing so don't worry about checksum mismatch"
> 
> 
> We do this already!

I'll try to go pester folks in tcpdump-workers then.

rick

^ permalink raw reply

* Re: expected behavior of PF_PACKET on NETIF_F_HW_VLAN_RX device?
From: David Miller @ 2007-11-01 22:07 UTC (permalink / raw)
  To: rick.jones2
  Cc: djohnson+linux-kernel, greearb, shemminger, linux-kernel, netdev,
	bguo
In-Reply-To: <472A4D5C.2070301@hp.com>

From: Rick Jones <rick.jones2@hp.com>
Date: Thu, 01 Nov 2007 15:04:12 -0700

> David Miller wrote:
> > From: Rick Jones <rick.jones2@hp.com>
> > Date: Thu, 01 Nov 2007 14:48:45 -0700
> > 
> > 
> >>One could I suppose try to ammend the information passed to allow
> >>tcpdump to say "oh, this was a tx packet on the same machine on
> >>which I am tracing so don't worry about checksum mismatch"
> > 
> > 
> > We do this already!
> 
> I'll try to go pester folks in tcpdump-workers then.

The thing to check is "TP_STATUS_CSUMNOTREADY".

When using mmap(), it will be provided in the descriptor.  When using
recvmsg() it will be provided via a PACKET_AUXDATA control message
when enabled via the PACKET_AUXDATA socket option.



^ permalink raw reply

* [2.6 patch] let USB_USBNET always select MII
From: Adrian Bunk @ 2007-11-01 22:25 UTC (permalink / raw)
  To: Toralf Förster, dbrownell, jgarzik; +Cc: linux-kernel, netdev
In-Reply-To: <200711012024.57412.toralf.foerster@gmx.de>

All this USB_USBNET_MII trickery is simply not worth it considering how 
few code it saves.

As a side effect, this also fixes the following compile error reported 
by Toralf Förster:

<--  snip  -->

...
  LD      .tmp_vmlinux1
drivers/built-in.o: In function `usbnet_set_settings':
(.text+0xf1876): undefined reference to `mii_ethtool_sset'
drivers/built-in.o: In function `usbnet_get_settings':
(.text+0xf1836): undefined reference to `mii_ethtool_gset'
drivers/built-in.o: In function `usbnet_get_link':
(.text+0xf18d6): undefined reference to `mii_link_ok'
drivers/built-in.o: In function `usbnet_nway_reset':
(.text+0xf18f6): undefined reference to `mii_nway_restart'
make: *** [.tmp_vmlinux1] Error 1

<--  snip  -->

Signed-off-by: Adrian Bunk <bunk@kernel.org>

---

 drivers/net/usb/Kconfig  |    9 +--------
 drivers/net/usb/usbnet.c |    7 -------
 2 files changed, 1 insertion(+), 15 deletions(-)

3b7f6290c639b9042fead1698fdbe1c84132c953 
diff --git a/drivers/net/usb/Kconfig b/drivers/net/usb/Kconfig
index 5a96d74..a12c9c4 100644
--- a/drivers/net/usb/Kconfig
+++ b/drivers/net/usb/Kconfig
@@ -93,13 +93,9 @@ config USB_RTL8150
 	  To compile this driver as a module, choose M here: the
 	  module will be called rtl8150.
 
-config USB_USBNET_MII
-	tristate
-	default n
-
 config USB_USBNET
 	tristate "Multi-purpose USB Networking Framework"
-	select MII if USB_USBNET_MII != n
+	select MII
 	---help---
 	  This driver supports several kinds of network links over USB,
 	  with "minidrivers" built around a common network driver core
@@ -135,7 +131,6 @@ config USB_NET_AX8817X
 	tristate "ASIX AX88xxx Based USB 2.0 Ethernet Adapters"
 	depends on USB_USBNET && NET_ETHERNET
 	select CRC32
-	select USB_USBNET_MII
 	default y
 	help
 	  This option adds support for ASIX AX88xxx based USB 2.0
@@ -190,7 +185,6 @@ config USB_NET_DM9601
 	tristate "Davicom DM9601 based USB 1.1 10/100 ethernet devices"
 	depends on USB_USBNET
 	select CRC32
-	select USB_USBNET_MII
 	help
 	  This option adds support for Davicom DM9601 based USB 1.1
 	  10/100 Ethernet adapters.
@@ -225,7 +219,6 @@ config USB_NET_PLUSB
 config USB_NET_MCS7830
 	tristate "MosChip MCS7830 based Ethernet adapters"
 	depends on USB_USBNET
-	select USB_USBNET_MII
 	help
 	  Choose this option if you're using a 10/100 Ethernet USB2
 	  adapter based on the MosChip 7830 controller. This includes
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index acd5f1c..8ed1fc5 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -683,9 +683,6 @@ done_nopm:
  * they'll probably want to use this base set.
  */
 
-#if defined(CONFIG_MII) || defined(CONFIG_MII_MODULE)
-#define HAVE_MII
-
 int usbnet_get_settings (struct net_device *net, struct ethtool_cmd *cmd)
 {
 	struct usbnet *dev = netdev_priv(net);
@@ -744,8 +741,6 @@ int usbnet_nway_reset(struct net_device *net)
 }
 EXPORT_SYMBOL_GPL(usbnet_nway_reset);
 
-#endif	/* HAVE_MII */
-
 void usbnet_get_drvinfo (struct net_device *net, struct ethtool_drvinfo *info)
 {
 	struct usbnet *dev = netdev_priv(net);
@@ -776,12 +771,10 @@ EXPORT_SYMBOL_GPL(usbnet_set_msglevel);
 
 /* drivers may override default ethtool_ops in their bind() routine */
 static struct ethtool_ops usbnet_ethtool_ops = {
-#ifdef	HAVE_MII
 	.get_settings		= usbnet_get_settings,
 	.set_settings		= usbnet_set_settings,
 	.get_link		= usbnet_get_link,
 	.nway_reset		= usbnet_nway_reset,
-#endif
 	.get_drvinfo		= usbnet_get_drvinfo,
 	.get_msglevel		= usbnet_get_msglevel,
 	.set_msglevel		= usbnet_set_msglevel,

^ permalink raw reply related


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