2.3.16 setserial ooopsen/errors, IRQ and UART probing

Matthias Andree (mandree@sx1.HRZ.Uni-Dortmund.DE)
Sat, 4 Sep 1999 17:26:38 +0200


--+HP7ph2BbKc20aGI
Content-Type: text/plain; charset=us-ascii

Hiya,

Several observations in 2.3.16 not present in 2.2.12 (I use gcc 2.95.1
for both kernel versions):

!!! PLEASE CC ANY REPLIES !!!

# cat /proc/version
Linux version 2.3.16 (root@emma1) (gcc version 2.95.1 19990816
(release)) #4 Fri Sep 3 23:25:35 CEST 1999

# uname -a
Linux emma1 2.3.16 #4 Fri Sep 3 23:25:35 CEST 1999 i586 unknown

(UniPenguin AMD K6-2/300 stepping 0, 128 MB RAM, VIA Apollo MVP3)

1) during booting up, 2.3.16 does not succeed in probing serial
interrupts, 2.2.12 does.

Here 2.3.16 bootup log (manually wrapped):

Serial driver version 4.30 with MANY_PORTS MULTIPORT SHARE_IRQ
DETECT_IRQ SERIAL
ttyS00 at 0x03f8 (irq = 0) is a 16550A
ttyS01 at 0x02f8 (irq = 0) is a 16550A
ttyS02 at 0x03e8 (irq = 0) is a 16550A
ttyS03 at 0x02e8 (irq = 0) is a 16550A

2.2.12 is able to deduce the actual irqs.

2) 2.3.16 say oops once setserial tries to "autoconfigure" a UART,
2.2.12 does not. By further trying I found that the ooops is autoconfig
related, with uart 16550a, setserial is fine.

Results with varing parameters:

# setserial /dev/ttyS0 irq 4 autoconfig
OOPS HERE

# setserial /dev/ttyS1 irq 3 uart 16550A
NO OOPS

# setserial /dev/ttyS2 port 0x3e8 irq 4 uart 16550A
NO OOPS

# setserial /dev/ttyS3 port 0x2e8 irq 3 autoconfig
OOPS HERE

There is 2nd attached ooops that is generated by:

# setserial /dev/ttyS0 auto_irq skip_test autoconfig
# setserial /dev/ttyS1 auto_irq skip_test autoconfig
# setserial /dev/ttyS2 auto_irq skip_test autoconfig
# setserial /dev/ttyS3 auto_irq skip_test autoconfig

3) 2.3.16 makes setserial report strange, offset errors on my fourport
compatible VSCom 400/750 PRO (ISA, 4 * TI16750, IRQ sharing, 922 kBit/s
payload per port, IRQ vector register). These parameters are fine with
2.2.12:

# setserial /dev/ttyS4 baud_base 921600 uart 16750 irq 10 port 0x180 ^fourport
# setserial /dev/ttyS5 baud_base 921600 uart 16750 irq 10 port 0x188 ^fourport
# setserial /dev/ttyS6 baud_base 921600 uart 16750 irq 10 port 0x190 ^fourport
# setserial /dev/ttyS7 baud_base 921600 uart 16750 irq 10 port 0x198 ^fourport
# setserial /dev/ttyS4 set_multiport port1 0x1c2 mask1 0xf match1 0xf

but give the following errors with 2.3.16:

Trying to free nonexistent resource <01a0-01a7>
Trying to free nonexistent resource <01a8-01af>
Trying to free nonexistent resource <01b0-01b7>
Trying to free nonexistent resource <01b8-01bf>

Not sure where this comes from. These don't oops.

2 Attachments, mind the descriptions.

-- 
Matthias Andree

Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread!

--+HP7ph2BbKc20aGI Content-Type: text/plain; charset=us-ascii Content-Description: oopsen from setserial auto_irq skip_test autoconfig Content-Disposition: attachment; filename=myoops

Options used: -v /usr/src/linux/vmlinux (specified) -o /lib/modules/2.3.16/ (default) -k /proc/ksyms (default) -l /proc/modules (default) -m /boot/System.map-2.3.16 (specified) -c 1 (default)

Warning in compare_ksyms_lsmod, module adlib_card is in lsmod but not in ksyms, probably no symbols exported Unable to handle kernel paging request at virtual address d80f0000 c01c645a *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<c01c645a>] EFLAGS: 00010286 eax: d80f0000 ebx: c7f886c0 ecx: 00000016 edx: 170f0000 esi: bffffd24 edi: 00000000 ebp: c028fd00 esp: c7c09d9c ds: 0018 es: 0018 ss: 0018 Process setserial (pid: 176, stackpage=c7c09000) Stack: 0000004a c7f886c0 00000001 00005301 000003f8 100000c0 100000c0 c028fd00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000500 00000005 00000cbd 00008a3b 7f1c0300 01000415 1a131100 170f1200 00000016 Call Trace: [<c01c4c35>] [<c01c4c53>] [<c01c5106>] [<c01c5f16>] [<c011ede2>] [<c011bb35>] [<c011bc58>] [<c01cb589>] [<c0130f27>] [<c0109254>] Code: 8a 00 eb 0a 89 f6 8b 54 24 18 83 c2 04 ec 25 ff 00 00 00 8b Warning: trailing garbage ignored on Code: line Text: 'Code: 8a 00 eb 0a 89 f6 8b 54 24 18 83 c2 04 ec 25 ff 00 00 00 8b ' Garbage: ' '

>>EIP: c01c645a <detect_uart_irq+82/35c> Trace: c01c4c35 <do_autoconfig+49/84> Trace: c01c4c53 <do_autoconfig+67/84> Trace: c01c5106 <rs_ioctl+c6/340> Trace: c01c5f16 <rs_open+13a/1ec> Trace: c011ede2 <filemap_nopage+9a/38c> Trace: c011bb35 <do_no_page+51/bc> Trace: c011bc58 <handle_mm_fault+b8/120> Trace: c01cb589 <tty_ioctl+321/358> Code: c01c645a <detect_uart_irq+82/35c> 00000000 <_EIP>: <=== Code: c01c645a <detect_uart_irq+82/35c> 0: 8a 00 movb (%eax),%al <=== Code: c01c645c <detect_uart_irq+84/35c> 2: eb 0a jmp c01c6468 <detect_uart_irq+90/35c> Code: c01c645e <detect_uart_irq+86/35c> 4: 89 f6 movl %esi,%esi Code: c01c6460 <detect_uart_irq+88/35c> 6: 8b 54 24 18 movl 0x18(%esp,1),%edx Code: c01c6464 <detect_uart_irq+8c/35c> a: 83 c2 04 addl $0x4,%edx Code: c01c6467 <detect_uart_irq+8f/35c> d: ec inb (%dx),%al Code: c01c6468 <detect_uart_irq+90/35c> e: 25 ff 00 00 00 andl $0xff,%eax Code: c01c646d <detect_uart_irq+95/35c> 13: 8b 00 movl (%eax),%eax

Unable to handle kernel paging request at virtual address d80f0000 c01c645a *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<c01c645a>] EFLAGS: 00010286 eax: d80f0000 ebx: c7f887e0 ecx: 00000016 edx: 170f0000 esi: bffffd24 edi: 00000000 ebp: c028fdb4 esp: c7c09d9c ds: 0018 es: 0018 ss: 0018 Process setserial (pid: 177, stackpage=c7c09000) Stack: 0000004a c7f887e0 00000001 00005301 000002f8 100000c0 100000c0 c028fdb4 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000500 00000005 00000cbd 00008a3b 7f1c0300 01000415 1a131100 170f1200 00000016 Call Trace: [<c01c4c35>] [<c01c4c53>] [<c01c5106>] [<c01c5f16>] [<c011ede2>] [<c011bb35>] [<c011bc58>] [<c01cb589>] [<c0130f27>] [<c0109254>] Code: 8a 00 eb 0a 89 f6 8b 54 24 18 83 c2 04 ec 25 ff 00 00 00 8b Warning: trailing garbage ignored on Code: line Text: 'Code: 8a 00 eb 0a 89 f6 8b 54 24 18 83 c2 04 ec 25 ff 00 00 00 8b ' Garbage: ' '

>>EIP: c01c645a <detect_uart_irq+82/35c> Trace: c01c4c35 <do_autoconfig+49/84> Trace: c01c4c53 <do_autoconfig+67/84> Trace: c01c5106 <rs_ioctl+c6/340> Trace: c01c5f16 <rs_open+13a/1ec> Trace: c011ede2 <filemap_nopage+9a/38c> Trace: c011bb35 <do_no_page+51/bc> Trace: c011bc58 <handle_mm_fault+b8/120> Trace: c01cb589 <tty_ioctl+321/358> Code: c01c645a <detect_uart_irq+82/35c> 00000000 <_EIP>: <=== Code: c01c645a <detect_uart_irq+82/35c> 0: 8a 00 movb (%eax),%al <=== Code: c01c645c <detect_uart_irq+84/35c> 2: eb 0a jmp c01c6468 <detect_uart_irq+90/35c> Code: c01c645e <detect_uart_irq+86/35c> 4: 89 f6 movl %esi,%esi Code: c01c6460 <detect_uart_irq+88/35c> 6: 8b 54 24 18 movl 0x18(%esp,1),%edx Code: c01c6464 <detect_uart_irq+8c/35c> a: 83 c2 04 addl $0x4,%edx Code: c01c6467 <detect_uart_irq+8f/35c> d: ec inb (%dx),%al Code: c01c6468 <detect_uart_irq+90/35c> e: 25 ff 00 00 00 andl $0xff,%eax Code: c01c646d <detect_uart_irq+95/35c> 13: 8b 00 movl (%eax),%eax

Unable to handle kernel paging request at virtual address d80f0000 c01c645a *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<c01c645a>] EFLAGS: 00010286 eax: d80f0000 ebx: c7f88900 ecx: 00000016 edx: 170f0000 esi: bffffd24 edi: 00000000 ebp: c028fe68 esp: c7c09d9c ds: 0018 es: 0018 ss: 0018 Process setserial (pid: 178, stackpage=c7c09000) Stack: 0000004a c7f88900 00000001 00005301 000003e8 100000c0 100000c0 c028fe68 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000500 00000005 00000cbd 00008a3b 7f1c0300 01000415 1a131100 170f1200 00000016 Call Trace: [<c01c4c35>] [<c01c4c53>] [<c01c5106>] [<c01c5f16>] [<c011ede2>] [<c011bb35>] [<c011bc58>] [<c01cb589>] [<c0130f27>] [<c0109254>] Code: 8a 00 eb 0a 89 f6 8b 54 24 18 83 c2 04 ec 25 ff 00 00 00 8b Warning: trailing garbage ignored on Code: line Text: 'Code: 8a 00 eb 0a 89 f6 8b 54 24 18 83 c2 04 ec 25 ff 00 00 00 8b ' Garbage: ' '

>>EIP: c01c645a <detect_uart_irq+82/35c> Trace: c01c4c35 <do_autoconfig+49/84> Trace: c01c4c53 <do_autoconfig+67/84> Trace: c01c5106 <rs_ioctl+c6/340> Trace: c01c5f16 <rs_open+13a/1ec> Trace: c011ede2 <filemap_nopage+9a/38c> Trace: c011bb35 <do_no_page+51/bc> Trace: c011bc58 <handle_mm_fault+b8/120> Trace: c01cb589 <tty_ioctl+321/358> Code: c01c645a <detect_uart_irq+82/35c> 00000000 <_EIP>: <=== Code: c01c645a <detect_uart_irq+82/35c> 0: 8a 00 movb (%eax),%al <=== Code: c01c645c <detect_uart_irq+84/35c> 2: eb 0a jmp c01c6468 <detect_uart_irq+90/35c> Code: c01c645e <detect_uart_irq+86/35c> 4: 89 f6 movl %esi,%esi Code: c01c6460 <detect_uart_irq+88/35c> 6: 8b 54 24 18 movl 0x18(%esp,1),%edx Code: c01c6464 <detect_uart_irq+8c/35c> a: 83 c2 04 addl $0x4,%edx Code: c01c6467 <detect_uart_irq+8f/35c> d: ec inb (%dx),%al Code: c01c6468 <detect_uart_irq+90/35c> e: 25 ff 00 00 00 andl $0xff,%eax Code: c01c646d <detect_uart_irq+95/35c> 13: 8b 00 movl (%eax),%eax

Unable to handle kernel paging request at virtual address d80f0000 c01c645a *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<c01c645a>] EFLAGS: 00010286 eax: d80f0000 ebx: c7f88a20 ecx: 00000016 edx: 170f0000 esi: bffffd24 edi: 00000000 ebp: c028ff1c esp: c7c09d9c ds: 0018 es: 0018 ss: 0018 Process setserial (pid: 179, stackpage=c7c09000) Stack: 0000004a c7f88a20 00000001 00005301 000002e8 100000c0 100000c0 c028ff1c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000500 00000005 00000cbd 00008a3b 7f1c0300 01000415 1a131100 170f1200 00000016 Call Trace: [<c01c4c35>] [<c01c4c53>] [<c01c5106>] [<c01c5f16>] [<c011ede2>] [<c011bb35>] [<c011bc58>] [<c01cb589>] [<c0130f27>] [<c0109254>] Code: 8a 00 eb 0a 89 f6 8b 54 24 18 83 c2 04 ec 25 ff 00 00 00 8b Warning: trailing garbage ignored on Code: line Text: 'Code: 8a 00 eb 0a 89 f6 8b 54 24 18 83 c2 04 ec 25 ff 00 00 00 8b ' Garbage: ' '

>>EIP: c01c645a <detect_uart_irq+82/35c> Trace: c01c4c35 <do_autoconfig+49/84> Trace: c01c4c53 <do_autoconfig+67/84> Trace: c01c5106 <rs_ioctl+c6/340> Trace: c01c5f16 <rs_open+13a/1ec> Trace: c011ede2 <filemap_nopage+9a/38c> Trace: c011bb35 <do_no_page+51/bc> Trace: c011bc58 <handle_mm_fault+b8/120> Trace: c01cb589 <tty_ioctl+321/358> Code: c01c645a <detect_uart_irq+82/35c> 00000000 <_EIP>: <=== Code: c01c645a <detect_uart_irq+82/35c> 0: 8a 00 movb (%eax),%al <=== Code: c01c645c <detect_uart_irq+84/35c> 2: eb 0a jmp c01c6468 <detect_uart_irq+90/35c> Code: c01c645e <detect_uart_irq+86/35c> 4: 89 f6 movl %esi,%esi Code: c01c6460 <detect_uart_irq+88/35c> 6: 8b 54 24 18 movl 0x18(%esp,1),%edx Code: c01c6464 <detect_uart_irq+8c/35c> a: 83 c2 04 addl $0x4,%edx Code: c01c6467 <detect_uart_irq+8f/35c> d: ec inb (%dx),%al Code: c01c6468 <detect_uart_irq+90/35c> e: 25 ff 00 00 00 andl $0xff,%eax Code: c01c646d <detect_uart_irq+95/35c> 13: 8b 00 movl (%eax),%eax

5 warnings issued. Results may not be reliable.

--+HP7ph2BbKc20aGI Content-Type: text/plain; charset=us-ascii Content-Description: oopsen from setserial autoconfig Content-Disposition: attachment; filename=myoops2

Options used: -v /usr/src/linux/vmlinux (specified) -o /lib/modules/2.3.16/ (default) -k /proc/ksyms (default) -l /proc/modules (default) -m /boot/System.map-2.3.16 (specified) -c 1 (default)

Warning in compare_ksyms_lsmod, module adlib_card is in lsmod but not in ksyms, probably no symbols exported Unable to handle kernel paging request at virtual address d70f0010 c01c645a *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<c01c645a>] EFLAGS: 00010282 eax: d70f0010 ebx: c7f886c0 ecx: 00000002 edx: 170f0000 esi: bffffd34 edi: 00000000 ebp: c028fd00 esp: c7c09d9c ds: 0018 es: 0018 ss: 0018 Process setserial (pid: 176, stackpage=c7c09000) Stack: 0000004a c7f886c0 00000001 00005301 000003f8 100000c0 100000c0 c028fd00 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000500 00000005 00000cbd 00008a3b 7f1c0300 01000415 1a131100 170f1200 00000016 Call Trace: [<c010a33d>] [<c01c4c35>] [<c01c4c53>] [<c01c5106>] [<c01c5f16>] [<c [<c011bc58>] [<c01cb589>] [<c0130f27>] [<c0109254>] Code: 8a 00 eb 0a 89 f6 8b 54 24 18 83 c2 04 ec 25 ff 00 00 00 8b

>>EIP: c01c645a <detect_uart_irq+82/35c> Trace: c010a33d <free_irq+89/a8> Trace: c01c4c35 <do_autoconfig+49/84> Trace: c01c4c53 <do_autoconfig+67/84> Trace: c01c5106 <rs_ioctl+c6/340> Trace: c01c5f16 <rs_open+13a/1ec> Code: c01c645a <detect_uart_irq+82/35c> 00000000 <_EIP>: <=== Code: c01c645a <detect_uart_irq+82/35c> 0: 8a 00 movb (%eax),%al <=== Code: c01c645c <detect_uart_irq+84/35c> 2: eb 0a jmp c01c6468 <detect_uart_irq+90/35c> Code: c01c645e <detect_uart_irq+86/35c> 4: 89 f6 movl %esi,%esi Code: c01c6460 <detect_uart_irq+88/35c> 6: 8b 54 24 18 movl 0x18(%esp,1),%edx Code: c01c6464 <detect_uart_irq+8c/35c> a: 83 c2 04 addl $0x4,%edx Code: c01c6467 <detect_uart_irq+8f/35c> d: ec inb (%dx),%al Code: c01c6468 <detect_uart_irq+90/35c> e: 25 ff 00 00 00 andl $0xff,%eax Code: c01c646d <detect_uart_irq+95/35c> 13: 8b 00 movl (%eax),%eax

Unable to handle kernel paging request at virtual address d70f0010 c01c645a *pde = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<c01c645a>] EFLAGS: 00010282 eax: d70f0010 ebx: c7f88a20 ecx: 00000002 edx: 170f0000 esi: bffffd24 edi: 00000000 ebp: c028ff1c esp: c7c09d9c ds: 0018 es: 0018 ss: 0018 Process setserial (pid: 182, stackpage=c7c09000) Stack: 0000004a c7f88a20 00000001 00005301 000002e8 10000080 10000080 c028ff1c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000500 00000005 00000cbd 00008a3b 7f1c0300 01000415 1a131100 170f1200 00000016 Call Trace: [<c010a33d>] [<c01c4c35>] [<c01c4c53>] [<c01c5106>] [<c01c5f16>] [<c [<c011bc58>] [<c01cb589>] [<c0130f27>] [<c0109254>] Code: 8a 00 eb 0a 89 f6 8b 54 24 18 83 c2 04 ec 25 ff 00 00 00 8b

>>EIP: c01c645a <detect_uart_irq+82/35c> Trace: c010a33d <free_irq+89/a8> Trace: c01c4c35 <do_autoconfig+49/84> Trace: c01c4c53 <do_autoconfig+67/84> Trace: c01c5106 <rs_ioctl+c6/340> Trace: c01c5f16 <rs_open+13a/1ec> Code: c01c645a <detect_uart_irq+82/35c> 00000000 <_EIP>: <=== Code: c01c645a <detect_uart_irq+82/35c> 0: 8a 00 movb (%eax),%al <=== Code: c01c645c <detect_uart_irq+84/35c> 2: eb 0a jmp c01c6468 <detect_uart_irq+90/35c> Code: c01c645e <detect_uart_irq+86/35c> 4: 89 f6 movl %esi,%esi Code: c01c6460 <detect_uart_irq+88/35c> 6: 8b 54 24 18 movl 0x18(%esp,1),%edx Code: c01c6464 <detect_uart_irq+8c/35c> a: 83 c2 04 addl $0x4,%edx Code: c01c6467 <detect_uart_irq+8f/35c> d: ec inb (%dx),%al Code: c01c6468 <detect_uart_irq+90/35c> e: 25 ff 00 00 00 andl $0xff,%eax Code: c01c646d <detect_uart_irq+95/35c> 13: 8b 00 movl (%eax),%eax

1 warning issued. Results may not be reliable.

--+HP7ph2BbKc20aGI--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/