BUG in blkdev_get (?)

From: Alberto Parga Fernández (alb.par@teleline.es)
Date: Fri Apr 28 2000 - 13:02:05 EST


Hi,

    Uniprocessor PII 233
    kernel 2.3.99-pre6
    egcs-2.91.66
    binutils-2.9.1.0.24
    mount-2.9u

    kmod support, floppy as the only module. Builtin the necessary to
    boot (no sound, no framebuffer, no exotic file systems, no cdrom,
    you get the idea)

>>no disk inserted<<

[root@localhost ~]# lsmod
Module Size Used by
[root@localhost ~]# mount /dev/fd0 /mnt/floppy -t ext2 -o ro

    [ sys_mount => do_sys_mount => get_sb_bdev => blkdev_get
      bdev->bd_ops == NULL, get_blkfops() loads the module
      bdev->bd_ops->open() fails but bdev->bd_ops is left pointing to
      the floppy block_device_operations. ]

end_request: I/O error, dev 02:00 (floppy), sector 0
mount: /dev/fd0 is not a valid block device
[root@localhost ~]# lsmod
Module Size Used by
floppy 46732 0 (autoclean)
[root@localhost ~]# rmmod floppy

    [ unregister_blkdev() removes the floppy block_device_operations
      from the blkdevs array, floppy unloaded. ]

[root@localhost ~]# lsmod
Module Size Used by
[root@localhost ~]# mount /dev/fd0 /mnt/floppy -t ext2 -o ro

    [ in blkdev_get(), bdev->bd_ops != NULL, get_blkfops() _not_ called
      and the module isn't loaded ... ]

    Decoded OOPS follows in case I totally missed the point :)

Unable to handle kernel paging request at virtual address c881062c
c0132beb
*pde = 07db7063
Oops: 0000
CPU: 0
EIP: 0010:[<c0132beb>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010282
eax: c881062c ebx: 00000200 ecx: 00000001 edx: c7641680
esi: c1295160 edi: c7641680 ebp: c75e5e6c esp: c75e5e44
ds: 0018 es: 0018 ss: 0018
Process mount (pid: 379, stackpage=c75e5000)
Stack: 00000000 00000001 00000200 fffffff3 c75e5edc c1295194 c1295194 c1295178
       00000000 00000001 00000000 00000000 c7641680 00000000 00000000 00000000
       00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Call Trace: [<c0130cf4>] [<c0131630>] [<c013181d>] [<c01095a0>]
Code: 8b 00 85 c0 74 0f 8b 4c 24 10 51 57 ff d0 89 44 24 28 83 c4

>>EIP; c0132beb <blkdev_get+11f/1a0> <=====
Trace; c0130cf4 <get_sb_bdev+144/1fc>
Trace; c0131630 <do_sys_mount+150/288>
Trace; c013181d <sys_mount+b5/18c>
Trace; c01095a0 <system_call+34/38>
Code; c0132beb <blkdev_get+11f/1a0>
00000000 <_EIP>:
Code; c0132beb <blkdev_get+11f/1a0> <=====
   0: 8b 00 movl (%eax),%eax <=====
Code; c0132bed <blkdev_get+121/1a0>
   2: 85 c0 testl %eax,%eax
Code; c0132bef <blkdev_get+123/1a0>
   4: 74 0f je 15 <_EIP+0x15> c0132c00
<blkdev_get+134/1a0>
Code; c0132bf1 <blkdev_get+125/1a0>
   6: 8b 4c 24 10 movl 0x10(%esp,1),%ecx
Code; c0132bf5 <blkdev_get+129/1a0>
   a: 51 pushl %ecx
Code; c0132bf6 <blkdev_get+12a/1a0>
   b: 57 pushl %edi
Code; c0132bf7 <blkdev_get+12b/1a0>
   c: ff d0 call *%eax
Code; c0132bf9 <blkdev_get+12d/1a0>
   e: 89 44 24 28 movl %eax,0x28(%esp,1)
Code; c0132bfd <blkdev_get+131/1a0>
  12: 83 c4 00 addl $0x0,%esp

Hope this helps

Thanks

-
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/



This archive was generated by hypermail 2b29 : Sun Apr 30 2000 - 21:00:15 EST