umount hangs after cardctl eject

Steven Scholz steven.scholz at imc-berlin.de
Tue Jul 26 10:11:19 EDT 2005


Hi there,

when I am doing "cardctl eject" (or echo 1 > card_eject) without unmounting the 
CF IDE driver before then umount (called by cardmgr) hangs.

# echo 1 > /sys/class/pcmcia_socket/pcmcia_socket0/card_eject
at91_cf_set_socket: Vcc 33, io_irq 0, flags 0200 csc 0080 [ OUTPUT_ENA ]
at91_cf_set_io_map: io->flags =; speed = 0
at91_cf: 16bit i/o bus
cardmgr[250]: shutting down socket 0
cardmgr[250]: executing: './ide stop hda'
at91_cf_set_socket: Vcc 0, io_irq 0, flags 0000 csc 0080 [ ]
at91_cf_get_status: DETECT READY
cardmgr[250]: + umount -v /dev/hda1

ps the shows

   297 root        512 S   sh -c ./ide stop hda 2>&1
   298 root        596 S   /bin/sh ./ide stop hda
   317 root        500 D   umount -v /dev/hda1

forever.

(A "cardctl suspend" without unmounting results in

cardmgr[250]: executing: './ide suspend hda'
cardmgr[250]: + umount -v /dev/hda1
hda: status timeout: status=0xe0 { Busy }
ide: failed opcode was: unknown
hda: drive not ready for command
ide0: reset: master: error (0x0a?)
hda: status timeout: status=0xe0 { Busy }
ide: failed opcode was: unknown
hda: drive not ready for command
ide0: reset: master: error (0x0a?)
end_request: I/O error, dev hda, sector 64
Buffer I/O error on device hda1, logical block 1
lost page write due to I/O error on hda1
) :-(

Is there any way to avoid this? And don't tell me unmounting the driver first! ;-)

The problem is, that users of our embedded devices could just remove the card 
without umounting. Loosing data the would be ok then. Their fault. But hanging 
the embedded device is not acceptable.

Thanks a million!

-- 
Steven



More information about the linux-pcmcia mailing list