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