2008-03-18 09:52:25

by Nikanth Karthikesan

[permalink] [raw]
Subject: ide_cd modifies hard_* members of request

Hi

Despite the warning in blkdev.h, that members of struct request starting
with hard_* are block layer internals, and no driver should touch them,
the ide_cd driver seems to fiddle around with it.

Is this reqd, or can this be made to work without the need for this?

If this reqd, why not provide a helper function for that in block layer
itself, may be, with a warning about usage?

Thanks
Nikanth Karthikesan


2008-03-18 11:05:27

by Borislav Petkov

[permalink] [raw]
Subject: Re: ide_cd modifies hard_* members of request

(sorry, forgot to cc all)

On Tue, Mar 18, 2008 at 9:54 AM, Nikanth Karthikesan <[email protected]> wrote:
> Hi
>
> Despite the warning in blkdev.h, that members of struct request starting
> with hard_* are block layer internals, and no driver should touch them,
> the ide_cd driver seems to fiddle around with it.
>
> Is this reqd, or can this be made to work without the need for this?
>
> If this reqd, why not provide a helper function for that in block layer
> itself, may be, with a warning about usage?
>
> Thanks
> Nikanth Karthikesan

Hi,

the code pieces you're referring to are in there since at least the
first git import of the kernel source (i.e. 2005) aka long time so
Bart/Jens should know that...


--
Regards/Gru?,
Boris

2008-03-18 11:08:19

by Jens Axboe

[permalink] [raw]
Subject: Re: ide_cd modifies hard_* members of request

On Tue, Mar 18 2008, Boris Petkov wrote:
> (sorry, forgot to cc all)
>
> On Tue, Mar 18, 2008 at 9:54 AM, Nikanth Karthikesan <[email protected]> wrote:
> > Hi
> >
> > Despite the warning in blkdev.h, that members of struct request starting
> > with hard_* are block layer internals, and no driver should touch them,
> > the ide_cd driver seems to fiddle around with it.
> >
> > Is this reqd, or can this be made to work without the need for this?
> >
> > If this reqd, why not provide a helper function for that in block layer
> > itself, may be, with a warning about usage?
> >
> > Thanks
> > Nikanth Karthikesan
>
> Hi,
>
> the code pieces you're referring to are in there since at least the
> first git import of the kernel source (i.e. 2005) aka long time so
> Bart/Jens should know that...

restore_request(), I'm assuming. It was probably me who modified this
code, I don't think there's any justification for it. I would suggest
killing it. And cdrom_read_from_buffer() as well, it's a silly addition.

--
Jens Axboe

2008-03-18 11:22:18

by Borislav Petkov

[permalink] [raw]
Subject: Re: ide_cd modifies hard_* members of request

On Tue, Mar 18, 2008 at 12:08 PM, Jens Axboe <[email protected]> wrote:
>
> On Tue, Mar 18 2008, Boris Petkov wrote:
> > (sorry, forgot to cc all)
> >
> > On Tue, Mar 18, 2008 at 9:54 AM, Nikanth Karthikesan <[email protected]> wrote:
> > > Hi
> > >
> > > Despite the warning in blkdev.h, that members of struct request starting
> > > with hard_* are block layer internals, and no driver should touch them,
> > > the ide_cd driver seems to fiddle around with it.
> > >
> > > Is this reqd, or can this be made to work without the need for this?
> > >
> > > If this reqd, why not provide a helper function for that in block layer
> > > itself, may be, with a warning about usage?
> > >
> > > Thanks
> > > Nikanth Karthikesan
> >
> > Hi,
> >
> > the code pieces you're referring to are in there since at least the
> > first git import of the kernel source (i.e. 2005) aka long time so
> > Bart/Jens should know that...
>
> restore_request(), I'm assuming. It was probably me who modified this
> code, I don't think there's any justification for it. I would suggest
> killing it.

I'll conjure up something later wrt above.

> And cdrom_read_from_buffer() as well, it's a silly addition.

This one is already gone, however the patch is still in Bart's tree
for -mm testing:
ftp://ftp.fi.kernel.org/pub/linux/kernel/people/bart/pata-2.6/patches/ide-cd-remove-the-internal-64k-buffer.patch

>
> --
> Jens Axboe
>
>



--
Regards/Gru?,
Boris