Re: BUG: Null pointer dereference in fs/open.c
From: Jens Axboe
Date: Thu Apr 26 2007 - 02:40:54 EST
On Thu, Apr 26 2007, William Heimbigner wrote:
> On Wed, 25 Apr 2007, Andrew Morton wrote:
> >On Wed, 25 Apr 2007 22:53:00 +0000 (GMT) William Heimbigner
> ><icxcnika@xxxxxxxxxx> wrote:
> >
> >>On Wed, 25 Apr 2007, Andrew Morton wrote:
> >><snip>
> >>>OK. I am able to use the pktcdvd driver OK in mainline with a piix/sata
> >>>drive. It could be that something is going wrong at the IDE level for
> >>>you.
> >>Perhaps; I'll try an external usb cd burner, and see where that goes.
> >>
> >>>Are you able to identify the most recent kernel which actually worked?
> >>No, because I haven't set packet writing up in Linux before - however, I
> >>do know
> >>that I've successfully set up packet writing (using 2 of the 3 cd burners
> >>I
> >>have) in another operating system before. I'll try 2.6.18 and see if that
> >>gets
> >>me anywhere different, though.
> >
> >OK.
> >
> >A quick summary: mainline's pktcdvd isn't working for William using IDE.
> >It is working for me using sata.
> >
> <snip>
> >
> >So what has happened here is that this code, in ide-cd.c's
> >cdrom_decode_status() is now triggering:
> >
> > } else if (blk_pc_request(rq) || rq->cmd_type == REQ_TYPE_ATA_PC) {
> > /* All other functions, except for READ. */
> > unsigned long flags;
> >
> > /*
> > * if we have an error, pass back CHECK_CONDITION as the
> > * scsi status byte
> > */
> > if (blk_pc_request(rq) && !rq->errors)
> > rq->errors = SAM_STAT_CHECK_CONDITION;
> >
> >
> >I suspect this is a bug introduced by
> >406c9b605cbc45151c03ac9a3f95e9acf050808c (in which case it'll be the third
> >bug so far).
> >
> >Perhaps the IDE driver was previously not considering these requests to be
> >of type blk_pc_request(), and after
> >406c9b605cbc45151c03ac9a3f95e9acf050808c it _is_ treating them as
> >blk_pc_request() and is incorrectly reporting an error. Or something like
> >that.
> >
> >Guys: help!
> >
> A follow-up: after looking around a bit, I have managed to get packet
> writing to work properly on /dev/hdc (before, it was reporting only 1.8 MB
> available or so; this was a formatting issue).
> I've also gotten the external cd-rw drive to work. However, I'm still at a
> loss as to why /dev/hdd won't work. I tried formatting a dvd-rw for this
> drive, however, it consistently gives me:
> [27342.503933] drivers/ide/ide-cd.c:729: setting error to 2
> [27342.509251] [<c010521a>] show_trace_log_lvl+0x1a/0x30
> [27342.514411] [<c0105952>] show_trace+0x12/0x20
> [27342.518864] [<c0105a46>] dump_stack+0x16/0x20
> [27342.523317] [<c033f6e4>] cdrom_decode_status+0x1f4/0x3b0
> [27342.528732] [<c033fae8>] cdrom_newpc_intr+0x38/0x320
> [27342.533791] [<c0331106>] ide_intr+0x96/0x200
> [27342.538157] [<c0150cf8>] handle_IRQ_event+0x28/0x60
> [27342.543139] [<c0151f96>] handle_edge_irq+0xa6/0x130
> [27342.548121] [<c0106449>] do_IRQ+0x49/0xa0
> [27342.552228] [<c0104c3a>] common_interrupt+0x2e/0x34
> [27342.557200] [<c01022d2>] mwait_idle+0x12/0x20
> [27342.561653] [<c01023ca>] cpu_idle+0x4a/0x80
> [27342.565934] [<c0101147>] rest_init+0x37/0x40
> [27342.570300] [<c068ac7b>] start_kernel+0x34b/0x420
> [27342.575109] [<00000000>] 0x0
> [27342.578089] =======================
> and doesn't work (the above output was generated by Andrew's patch to log
> certain areas).
>
> # dvd+rw-format /dev/hdd -force
> * BD/DVDRW/-RAM format utility by <appro@xxxxxxxxxxxxxx>, version 7.0.
> :-( failed to locate "Quick Format" descriptor.
> * 4.7GB DVD-RW media in Sequential mode detected.
> * formatting 0.0\:-[ READ TRACK INFORMATION failed with
> SK=3h/ASC=11h/ACQ=05h]: Input/output error
That's an uncorrectable read error. Is the media good?
> I tried putting in a different dvd-rw, and this time I get:
> # dvd+rw-format /dev/hdd -force
> * BD/DVDRW/-RAM format utility by <appro@xxxxxxxxxxxxxx>, version 7.0.
> * 4.7GB DVD-RW media in Sequential mode detected.
> * formatting 0.0|:-[ FORMAT UNIT failed with SK=5h/ASC=26h/ACQ=00h]:
> Input/output error
That's the drive complaining about an invalid bit being set in the
command descriptor block. That's usually a bug in the issuer.
--
Jens Axboe
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/