On Sat, 21 Feb 2004, Adrian Reber wrote: > I am trying to port the driver of my mp3 player (mpf70) from 2.4 to 2.6. > The driver offers a block device interface so that it can be mounted. I > am able to use the driver just like under 2.4 but unfortunately every > write and read to the device produces something like the attached > output. I have not written any usb drivers before so probably I am doing > something very wrong here and maybe someone could help by giving me a > hint on how to do it the right way or just a pointer to some > documentation about this topic. Thanks. > > bad: scheduling while atomic! > Call Trace: > [schedule+1430/1440] schedule+0x596/0x5a0 > [__crc_ide_do_drive_cmd+725855/1477954] uhci_urb_enqueue+0x11b/0x2d0 [uhci_hcd] > [wait_for_completion+152/240] wait_for_completion+0x98/0xf0 > [default_wake_function+0/32] default_wake_function+0x0/0x20 > [default_wake_function+0/32] default_wake_function+0x0/0x20 > [__crc_ide_do_drive_cmd+865240/1477954] usb_start_wait_urb+0x84/0xe0 [usbcore] > [__crc_ide_do_drive_cmd+864980/1477954] timeout_kill+0x0/0x80 [usbcore] > [__crc_device_del+677144/10998291] mpf70_usb_init_read+0x76/0x1b0 [mpf70] > [__crc_device_del+679103/10998291] mpf70_usb_read_sect+0x8d/0xa0 [mpf70] > [__crc_device_del+680754/10998291] mpf70_blk_transfer+0xa0/0x100 [mpf70] > [__crc_device_del+680976/10998291] mpf70_blk_request+0x7e/0xb0 [mpf70] > [generic_unplug_device+116/128] generic_unplug_device+0x74/0x80 > [blk_run_queues+122/176] blk_run_queues+0x7a/0xb0 > [__wait_on_buffer+197/208] __wait_on_buffer+0xc5/0xd0 > [autoremove_wake_function+0/80] autoremove_wake_function+0x0/0x50 > [bio_alloc+218/448] bio_alloc+0xda/0x1c0 > [autoremove_wake_function+0/80] autoremove_wake_function+0x0/0x50 > [__bread_slow+79/176] __bread_slow+0x4f/0xb0 > [__bread+56/64] __bread+0x38/0x40 > [__crc_device_del+775090/10998291] fat__get_entry+0xa0/0x17e [fat] > [__crc_device_del+762448/10998291] fat_get_short_entry+0x9e/0xb0 [fat] > [__crc_device_del+762755/10998291] fat_subdirs+0x51/0x80 [fat] > [__crc_device_del+767312/10998291] fat_read_root+0x11e/0x150 [fat] > [__crc_device_del+769871/10998291] fat_fill_super+0x62d/0x8b0 [fat] > [snprintf+38/48] snprintf+0x26/0x30 > [disk_name+167/176] disk_name+0xa7/0xb0 > [__crc_device_del+700966/10998291] vfat_fill_super+0x34/0x70 [vfat] > [get_sb_bdev+289/352] get_sb_bdev+0x121/0x160 > [__crc_device_del+701073/10998291] vfat_get_sb+0x2f/0x40 [vfat] > [__crc_device_del+700914/10998291] vfat_fill_super+0x0/0x70 [vfat] > [do_kern_mount+86/208] do_kern_mount+0x56/0xd0 > [do_add_mount+132/400] do_add_mount+0x84/0x190 > [do_mount+320/400] do_mount+0x140/0x190 > [__get_free_pages+53/64] __get_free_pages+0x35/0x40 > [copy_mount_options+156/272] copy_mount_options+0x9c/0x110 > [sys_mount+180/288] sys_mount+0xb4/0x120 > [sysenter_past_esp+82/113] sysenter_past_esp+0x52/0x71
I had difficulty following the stack track; it seems to have a bunch of garbage addresses preceding the mpf70_usb_init_read line. Can you say what routine that calls, and in what context (process or interrupt)? Alan Stern ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
