2.5.68 oopses
I get the following when booting 2.5.68:
Apr 21 00:41:37 paulus kernel: airo: Doing fast bap_reads Apr 21 00:41:37 paulus kernel: airo: MAC enabled eth1 0:7:e:b8:d6:7d Apr 21 00:41:37 paulus kernel: eth1: index 0x05: Vcc 5.0, Vpp 5.0, irq 4, io 0x0100-0x013f Apr 21 00:41:37 paulus kernel: bad: scheduling while atomic! Apr 21 00:41:37 paulus kernel: Call Trace: Apr 21 00:41:37 paulus kernel: [<c0117087>] schedule+0x387/0x3a0 Apr 21 00:41:37 paulus kernel: [<c021c9b3>] issuecommand+0x53/0x80 Apr 21 00:41:37 paulus kernel: [<c021ce98>] PC4500_accessrid+0x38/0x80 Apr 21 00:41:37 paulus kernel: [<c021cf40>] PC4500_readrid+0x60/0x120 Apr 21 00:41:37 paulus kernel: [<c021a85a>] readStatsRid+0x1a/0x40 Apr 21 00:41:37 paulus kernel: [<c021ae22>] airo_get_stats+0x22/0xc0 Apr 21 00:41:37 paulus kernel: [<c0132d9e>] find_get_page+0x1e/0x60 Apr 21 00:41:37 paulus kernel: [<c01732a0>] proc_alloc_inode+0x0/0x80 Apr 21 00:41:37 paulus kernel: [<c0139771>] kmem_cache_alloc+0x51/0x60 Apr 21 00:41:37 paulus kernel: [<c01732a0>] proc_alloc_inode+0x0/0x80 Apr 21 00:41:37 paulus kernel: [<c0139771>] kmem_cache_alloc+0x51/0x60 Apr 21 00:41:37 paulus kernel: [<c01732e8>] proc_alloc_inode+0x48/0x80 Apr 21 00:41:37 paulus kernel: [<c0162739>] alloc_inode+0x19/0x140 Apr 21 00:41:37 paulus kernel: [<c0163230>] get_new_inode+0xf0/0x100 Apr 21 00:41:37 paulus kernel: [<c0173272>] proc_read_inode+0x12/0x40 Apr 21 00:41:37 paulus kernel: [<c0132d9e>] find_get_page+0x1e/0x60 Apr 21 00:41:37 paulus kernel: [<c01c750d>] vsnprintf+0x1ed/0x420 Apr 21 00:41:37 paulus kernel: [<c0167fd2>] seq_printf+0x32/0x60 Apr 21 00:41:37 paulus kernel: [<c029b40e>] dev_seq_printf_stats+0x6e/0xa0 Apr 21 00:41:37 paulus kernel: [<c029b42c>] dev_seq_printf_stats+0x8c/0xa0 Apr 21 00:41:37 paulus kernel: [<c029b455>] dev_seq_show+0x15/0x40 Apr 21 00:41:37 paulus kernel: [<c0167a97>] seq_read+0x1b7/0x2e0 Apr 21 00:41:37 paulus kernel: [<c014bcd8>] vfs_read+0x98/0xe0 Apr 21 00:41:37 paulus kernel: [<c014bee8>] sys_read+0x28/0x40 Apr 21 00:41:37 paulus kernel: [<c0109297>] syscall_call+0x7/0xb Apr 21 00:41:37 paulus kernel: Apr 21 00:41:37 paulus kernel: bad: scheduling while atomic! Apr 21 00:41:37 paulus kernel: Call Trace: Apr 21 00:41:37 paulus kernel: [<c0117087>] schedule+0x387/0x3a0 Apr 21 00:41:37 paulus kernel: [<c021c9b3>] issuecommand+0x53/0x80 Apr 21 00:41:37 paulus kernel: [<c021ce98>] PC4500_accessrid+0x38/0x80 Apr 21 00:41:37 paulus kernel: [<c021cf40>] PC4500_readrid+0x60/0x120 Apr 21 00:41:37 paulus kernel: [<c021a85a>] readStatsRid+0x1a/0x40 Apr 21 00:41:37 paulus kernel: [<c021ae22>] airo_get_stats+0x22/0xc0 Apr 21 00:41:37 paulus kernel: [<c01c750d>] vsnprintf+0x1ed/0x420 Apr 21 00:41:37 paulus kernel: [<c0167fd2>] seq_printf+0x32/0x60 Apr 21 00:41:37 paulus kernel: [<c029b40e>] dev_seq_printf_stats+0x6e/0xa0 Apr 21 00:41:37 paulus kernel: [<c029b42c>] dev_seq_printf_stats+0x8c/0xa0 Apr 21 00:41:37 paulus kernel: [<c029b455>] dev_seq_show+0x15/0x40 Apr 21 00:41:37 paulus kernel: [<c0167a97>] seq_read+0x1b7/0x2e0 Apr 21 00:41:37 paulus kernel: [<c014bcd8>] vfs_read+0x98/0xe0 Apr 21 00:41:37 paulus kernel: [<c014bee8>] sys_read+0x28/0x40 Apr 21 00:41:37 paulus kernel: [<c0109297>] syscall_call+0x7/0xb Apr 21 00:41:37 paulus kernel:
I can use pump to get an ipaddress on eth1 (the card) without
complaint. Then, I get, when running ifconfig:
Apr 21 00:43:30 paulus kernel: bad: scheduling while atomic! Apr 21 00:43:30 paulus kernel: Call Trace: Apr 21 00:43:30 paulus kernel: [<c0117087>] schedule+0x387/0x3a0 Apr 21 00:43:30 paulus kernel: [<c021c23e>] IN4500+0x1e/0x40 Apr 21 00:43:30 paulus kernel: [<c021c9b3>] issuecommand+0x53/0x80 Apr 21 00:43:30 paulus kernel: [<c021ce98>] PC4500_accessrid+0x38/0x80 Apr 21 00:43:30 paulus kernel: [<c021cf40>] PC4500_readrid+0x60/0x120 Apr 21 00:43:30 paulus kernel: [<c021a85a>] readStatsRid+0x1a/0x40 Apr 21 00:43:30 paulus kernel: [<c021ae22>] airo_get_stats+0x22/0xc0 Apr 21 00:43:30 paulus kernel: [<c0132d9e>] find_get_page+0x1e/0x60 Apr 21 00:43:30 paulus kernel: [<c01732a0>] proc_alloc_inode+0x0/0x80 Apr 21 00:43:30 paulus kernel: [<c0139771>] kmem_cache_alloc+0x51/0x60 Apr 21 00:43:30 paulus kernel: [<c01732a0>] proc_alloc_inode+0x0/0x80 Apr 21 00:43:30 paulus kernel: [<c0139771>] kmem_cache_alloc+0x51/0x60 Apr 21 00:43:30 paulus kernel: [<c01732e8>] proc_alloc_inode+0x48/0x80 Apr 21 00:43:30 paulus kernel: [<c0163930>] generic_forget_inode+0x70/0x140 Apr 21 00:43:30 paulus kernel: [<c0173272>] proc_read_inode+0x12/0x40 Apr 21 00:43:30 paulus kernel: [<c0132d9e>] find_get_page+0x1e/0x60 Apr 21 00:43:30 paulus kernel: [<c01c750d>] vsnprintf+0x1ed/0x420 Apr 21 00:43:30 paulus kernel: [<c0167fd2>] seq_printf+0x32/0x60 Apr 21 00:43:30 paulus kernel: [<c029b40e>] dev_seq_printf_stats+0x6e/0xa0 Apr 21 00:43:30 paulus kernel: [<c029b42c>] dev_seq_printf_stats+0x8c/0xa0 Apr 21 00:43:30 paulus kernel: [<c029b455>] dev_seq_show+0x15/0x40 Apr 21 00:43:30 paulus kernel: [<c0167a97>] seq_read+0x1b7/0x2e0 Apr 21 00:43:30 paulus kernel: [<c014bcd8>] vfs_read+0x98/0xe0 Apr 21 00:43:30 paulus kernel: [<c014bee8>] sys_read+0x28/0x40 Apr 21 00:43:30 paulus kernel: [<c0109297>] syscall_call+0x7/0xb Apr 21 00:43:30 paulus kernel: Apr 21 00:43:31 paulus kernel: bad: scheduling while atomic! Apr 21 00:43:31 paulus kernel: Call Trace: Apr 21 00:43:31 paulus kernel: [<c0117087>] schedule+0x387/0x3a0 Apr 21 00:43:31 paulus kernel: [<c021c9b3>] issuecommand+0x53/0x80 Apr 21 00:43:31 paulus kernel: [<c021ce98>] PC4500_accessrid+0x38/0x80 Apr 21 00:43:31 paulus kernel: [<c021cf40>] PC4500_readrid+0x60/0x120 Apr 21 00:43:31 paulus kernel: [<c021a85a>] readStatsRid+0x1a/0x40 Apr 21 00:43:31 paulus kernel: [<c021ae22>] airo_get_stats+0x22/0xc0 Apr 21 00:43:31 paulus kernel: [<c01c750d>] vsnprintf+0x1ed/0x420 Apr 21 00:43:31 paulus kernel: [<c0167fd2>] seq_printf+0x32/0x60 Apr 21 00:43:31 paulus kernel: [<c029b40e>] dev_seq_printf_stats+0x6e/0xa0 Apr 21 00:43:31 paulus kernel: [<c029b42c>] dev_seq_printf_stats+0x8c/0xa0 Apr 21 00:43:31 paulus kernel: [<c029b455>] dev_seq_show+0x15/0x40 Apr 21 00:43:31 paulus kernel: [<c0167a97>] seq_read+0x1b7/0x2e0 Apr 21 00:43:31 paulus kernel: [<c014bcd8>] vfs_read+0x98/0xe0 Apr 21 00:43:31 paulus kernel: [<c014bee8>] sys_read+0x28/0x40 Apr 21 00:43:31 paulus kernel: [<c0109297>] syscall_call+0x7/0xb Apr 21 00:43:31 paulus kernel:
Finally, on shutdown, I get some more oopses, but they go by fast, and
they didn't make it into my log.
-Joseph
Signature · 5 lines
Joseph===============================================trelane@digitasaru.net "Isn't it illegal for Microsoft to tie any of its software products to its OS?" --Rob Riggs on slashdot (www.slashdot.org) about Microsoft's order to cease and decist using Visual Fox Pro on Linux, a non-Microsoft OS. "Yes. The penalty is dinner with no dessert." --Alien Being, response
Quoted 7 lines · Joseph Pingenot
I get the following when booting 2.5.68:
Apr 21 00:41:37 paulus kernel: airo: Doing fast bap_reads Apr 21 00:41:37 paulus kernel: airo: MAC enabled eth1 0:7:e:b8:d6:7d Apr 21 00:41:37 paulus kernel: eth1: index 0x05: Vcc 5.0, Vpp 5.0, irq 4, io 0x0100-0x013f Apr 21 00:41:37 paulus kernel: bad: scheduling while atomic!
It's not really an oops - but it's trying hard to become one.
Could you please run with this patch for a while, and let me know what it puts in the logs?
drivers/net/wireless/airo.c | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-)
drivers/net/wireless/airo.c renamed from drivers/net/wireless/airo.c~airo-schedule-fix +10 -3
@@ -44,6 +44,7 @@#include <linux/ioport.h> #include <linux/config.h> #include <linux/pci.h> +#include <linux/delay.h> #include <asm/uaccess.h> #ifdef CONFIG_PCI
@@ -2376,20 +2377,26 @@ static u16 setup_card(struct airo_info *static u16 issuecommand (struct airo_info *ai,Cmd *pCmd,Resp *pRsp) {// Im really paranoid about letting it run forever! int max_tries =600000 ; +static int max =0 ; +int count =0 ;if (sendcommand (ai, pCmd) == (u16 )ERROR )return ERROR ;while (max_tries-- && (IN4500 (ai,EVSTAT ) &EV_CMD ) ==0 ) { -if (!in_interrupt () && (max_tries &255 ) ==0 ) -schedule (); +udelay (1 ); + count++; } -if ( max_tries ==-1 ) { +if (max_tries ==-1 ) {printk (KERN_ERR "airo: Max tries exceeded waiting for command\n" );return ERROR ; }completecommand (ai, pRsp); +if (count > max) { + max = count; +printk ("%s: max delay = %d usec\n" , __FUNCTION__, max); + }return SUCCESS ; }
_