Re: [Bugme-new] [Bug 8808] New: Large file transfer causes kernel panic showing b44_poll

2007-08-01 Thread Gary Zambrano
On Wed, 2007-07-25 at 11:54 -0700, Andrew Morton wrote:
> On Wed, 25 Jul 2007 04:29:33 -0700 (PDT)
> [EMAIL PROTECTED] wrote:
> 
> > http://bugzilla.kernel.org/show_bug.cgi?id=8808
> > 
> >Summary: Large file transfer causes kernel panic showing b44_poll
> >Product: Drivers
> >Version: 2.5
> >  KernelVersion: 2.6.22.1
> >   Platform: All
> > OS/Version: Linux
> >   Tree: Mainline
> > Status: NEW
> >   Severity: blocking
> >   Priority: P1
> >  Component: Network
> > AssignedTo: [EMAIL PROTECTED]
> > ReportedBy: [EMAIL PROTECTED]
> > 
> > 
> > Most recent kernel where this bug did not occur: /
> > Distribution: ttylinux 
> > Hardware Environment: Dell Inspiron 1300
> > Problem Description: 
> > 
> > A large file transfer (6.5GB) (tried http with wget and plain netcat) 
> > causes a
> > kernel panic after more than several GB have been transferred. However, 
> > kernel
> > panic does not occur consistently. That is, it has occurred after 1.2GB, 
> > 1.8GB,
> > 2.3GB and even 3.4GB transferred. Transfer never finished though. 
> > 
I could not repro the problem, but please give this patch a try:

diff -rup a/b44.c b/b44.c
--- a/b44.c 2007-07-31 15:31:08.0 -0700
+++ b/b44.c 2007-08-01 08:03:08.0 -0700
@@ -792,15 +792,15 @@ static int b44_rx(struct b44 *bp, int bu
goto next_pkt;
}
 
-   if (len == 0) {
+   if (len < 5) {
int i = 0;
 
do {
udelay(2);
barrier();
len = le16_to_cpu(rh->len);
-   } while (len == 0 && i++ < 5);
-   if (len == 0)
+   } while (len < 5 && i++ < 5);
+   if (len < 5)
goto drop_it;
}
 



-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [Bugme-new] [Bug 8808] New: Large file transfer causes kernel panic showing b44_poll

2007-07-25 Thread Andrew Morton
On Wed, 25 Jul 2007 04:29:33 -0700 (PDT)
[EMAIL PROTECTED] wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=8808
> 
>Summary: Large file transfer causes kernel panic showing b44_poll
>Product: Drivers
>Version: 2.5
>  KernelVersion: 2.6.22.1
>   Platform: All
> OS/Version: Linux
>   Tree: Mainline
> Status: NEW
>   Severity: blocking
>   Priority: P1
>  Component: Network
> AssignedTo: [EMAIL PROTECTED]
> ReportedBy: [EMAIL PROTECTED]
> 
> 
> Most recent kernel where this bug did not occur: /
> Distribution: ttylinux 
> Hardware Environment: Dell Inspiron 1300
> Problem Description: 
> 
> A large file transfer (6.5GB) (tried http with wget and plain netcat) causes a
> kernel panic after more than several GB have been transferred. However, kernel
> panic does not occur consistently. That is, it has occurred after 1.2GB, 
> 1.8GB,
> 2.3GB and even 3.4GB transferred. Transfer never finished though. 
> 
> Call trace: 
> [] b44_poll+0x220/0x459
> [] b44_poll+0x220/0x459
> [] net_rx_action+0x52/0x110
> [] __do_softirq+0x35/0x75
> [] do_softirq+0x22/0x26
> [] do_IRQ+0x55/0x6a
> [] common_interrupt+0x23/0x28
> [] acpi_processor_idle+0x1dd/0x35e
> [] cpu_idle+0x3c/0x51
> [] start_kernel+0x24a/0x252
> [] unknown_bootoption+0x0/0x205
> 
> Code: lots of numbers
> EIP: [] skb_over_panic+0x59/0x5d SS:ESP 0068:c04a5ed8
> Kernel panic - not syncing: Fatal exception in interrupt
> 
> Steps to reproduce:
> Network boot ttylinux (standard filesys with dhcp enabled) with custom kernel
> (see below for config) compiled as bzImage on Dell Inspiron 1300 using
> /dev/ram0 as root filesystem. Mount hdd ext3 and attempt to download 6.5GB
> image file from local server. Both netcat and wget attempts fail as described
> above.
> 
> Kernel config:
> 
> #
> # Automatically generated make config: don't edit
> # Linux kernel version: 2.6.22.1
> # Wed Jul 25 14:53:11 2007
> #
> CONFIG_X86_32=y
> CONFIG_GENERIC_TIME=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"
> 
> #
> # Code maturity level options
> #
> CONFIG_EXPERIMENTAL=y
> CONFIG_BROKEN_ON_SMP=y
> CONFIG_INIT_ENV_ARG_LIMIT=32
> 
> #
> # General setup
> #
> CONFIG_LOCALVERSION=""
> # CONFIG_LOCALVERSION_AUTO is not set
> CONFIG_SWAP=y
> CONFIG_SYSVIPC=y
> # CONFIG_IPC_NS is not set
> CONFIG_SYSVIPC_SYSCTL=y
> # CONFIG_POSIX_MQUEUE is not set
> # CONFIG_BSD_PROCESS_ACCT is not set
> # CONFIG_TASKSTATS is not set
> # CONFIG_UTS_NS is not set
> # CONFIG_AUDIT is not set
> CONFIG_IKCONFIG=y
> CONFIG_IKCONFIG_PROC=y
> CONFIG_LOG_BUF_SHIFT=14
> CONFIG_SYSFS_DEPRECATED=y
> # CONFIG_RELAY is not set
> CONFIG_BLK_DEV_INITRD=y
> CONFIG_INITRAMFS_SOURCE=""
> CONFIG_CC_OPTIMIZE_FOR_SIZE=y
> CONFIG_SYSCTL=y
> # CONFIG_EMBEDDED is not set
> CONFIG_UID16=y
> CONFIG_SYSCTL_SYSCALL=y
> CONFIG_KALLSYMS=y
> # CONFIG_KALLSYMS_ALL is not set
> # 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_TIMERFD=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
> 
> #
> # Loadable module support
> #
> # CONFIG_MODULES is not set
> 
> #
> # Block layer
> #
> CONFIG_BLOCK=y
> # CONFIG_LBD is not set
> # CONFIG_BLK_DEV_IO_TRACE is not set
> # CONFIG_LSF is not set
> 
> #
> # IO Schedulers
> #
> CONFIG_IOSCHED_NOOP=y
> # CONFIG_IOSCHED_AS is not set
> CONFIG_IOSCHED_DEADLINE=y
> # CONFIG_IOSCHED_CFQ is not set
> # CONFIG_DEFAULT_AS is not set
> CONFIG_DEFAULT_DEADLINE=y
> # CONFIG_DEFAULT_CFQ is not set
> # CONFIG_DEFAULT_NOOP is not set
> CONFIG_DEFAULT_IOSCHED="deadline"
> 
> #
> # Processor type and features
> #
> # CONFIG_TICK_ONESHOT is not set
> # CONFIG_NO_HZ is not set
> # CONFIG_HIGH_RES_TIMERS is not set
> # 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_PARAVIRT is not set
> CONFIG_M386=y
> # 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 is