Re: linux kernel panic when ejecting ieee1394 ipod

Stefan Richter
2005-12-08T19:28:45Z

Patrick Mansfield wrote:
> On Thu, Dec 08, 2005 at 03:44:42AM +0100, Stefan Richter wrote:
>>What if you replace WRITE by READ in
>>drivers/scsi/scsi_ioctl.c::scsi_cmd_ioctl()::case CDROMEJECT ?

(unless blk_get_request() knows another flag which comes closer to
DMA_NONE than READ)

> You must mean block/scsi_ioctl.c? i.e.:

Yes, actually. %-)

> diff -uprN -X /home/patman/dontdiff linux-2.6.15-rc5-git1/block/scsi_ioctl.c mod- linux-2.6.15-rc5-git1/block/scsi_ioctl.c
> --- /home/linux/views/linux-2.6.15-rc5-git1/block/scsi_ioctl.c 2005-12-03 22:51:54.000000000 -0800
> +++ linux-2.6.15-rc5-git1/block/scsi_ioctl.c 2005-12-08 09:31:52.000000000 -0800
> @@ -566,7 +566,7 @@ int scsi_cmd_ioctl(struct file *file, st
> case CDROMCLOSETRAY:
> close = 1;
> case CDROMEJECT:
> - rq = blk_get_request(q, WRITE, __GFP_WAIT);
> + rq = blk_get_request(q, READ, __GFP_WAIT);
> rq->flags |= REQ_BLOCK_PC;
> rq->data = NULL;
> rq->data_len = 0;

This should also go to -stable.

BTW, a kernel oops after "eject /mnt/ipod" under 2.6.12 (though no
panic) was also reported by Bryan Olmstead on July 16 2005.
http://marc.theaimsgroup.com/?l=linux1394-user&m=112152701817435
From the multiple problems reported there, everything except the eject
issue has been fixed in the meantime.
--
Stefan Richter
-=====-=-=-= ==-- -=---