Message ID | CAGXu5j+mgGZkTDS6EDRspJKKbU=vMT4ehv9T-SekPba=ESoGDg@mail.gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
On 05/22/2018 04:31 PM, Kees Cook wrote: > On Tue, May 22, 2018 at 12:16 PM, Jens Axboe <axboe@kernel.dk> wrote: >> On 5/22/18 1:13 PM, Christoph Hellwig wrote: >>> On Tue, May 22, 2018 at 01:09:41PM -0600, Jens Axboe wrote: >>>> I think Martin and Christoph are objecting to moving the code to >>>> block/scsi_ioctl.h. I don't care too much about where the code is, but >>>> think it would be nice to have the definitions in a separate header. But >>>> if they prefer just pulling in all of SCSI for it, well then I guess >>>> it's pointless to move the header bits. Seems very heavy handed to me, >>>> though. >>> >>> It might be heavy handed for the 3 remaining users of drivers/ide, >> >> Brutal :-) > > Heh. I noticed a similar sense buffer use in drivers/cdrom/cdrom.c > too. Is this okay under the same considerations? No. Do not select an entire subsystem. Use depends on it instead. > diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig > index ad9b687a236a..220ff321c102 100644 > --- a/drivers/block/Kconfig > +++ b/drivers/block/Kconfig > @@ -79,7 +79,7 @@ config GDROM > tristate "SEGA Dreamcast GD-ROM drive" > depends on SH_DREAMCAST > select CDROM > - select BLK_SCSI_REQUEST # only for the generic cdrom code > + select SCSI > help > A standard SEGA Dreamcast comes with a modified CD ROM drive called a > "GD-ROM" by SEGA to signify it is capable of reading special disks > @@ -345,7 +345,7 @@ config CDROM_PKTCDVD > tristate "Packet writing on CD/DVD media (DEPRECATED)" > depends on !UML > select CDROM > - select BLK_SCSI_REQUEST > + select SCSI > help > Note: This driver is deprecated and will be removed from the > kernel in the near future! > diff --git a/drivers/block/paride/Kconfig b/drivers/block/paride/Kconfig > index f8bd6ef3605a..7fdfcc5eaca5 100644 > --- a/drivers/block/paride/Kconfig > +++ b/drivers/block/paride/Kconfig > @@ -27,7 +27,7 @@ config PARIDE_PCD > tristate "Parallel port ATAPI CD-ROMs" > depends on PARIDE > select CDROM > - select BLK_SCSI_REQUEST # only for the generic cdrom code > + select SCSI > ---help--- > This option enables the high-level driver for ATAPI CD-ROM devices > connected through a parallel port. If you chose to build PARIDE > >>> but as long as that stuff just keeps working I'd rather worry about >>> everyone else, and keep the scsi code where it belongs. >> >> Fine with me then, hopefully we can some day kill it off. > > I'll send a v2. I found a few other things to fix up (including the > cdrom.c one).
On Tue, May 22, 2018 at 4:34 PM, Randy Dunlap <rdunlap@infradead.org> wrote: > On 05/22/2018 04:31 PM, Kees Cook wrote: >> On Tue, May 22, 2018 at 12:16 PM, Jens Axboe <axboe@kernel.dk> wrote: >>> On 5/22/18 1:13 PM, Christoph Hellwig wrote: >>>> On Tue, May 22, 2018 at 01:09:41PM -0600, Jens Axboe wrote: >>>>> I think Martin and Christoph are objecting to moving the code to >>>>> block/scsi_ioctl.h. I don't care too much about where the code is, but >>>>> think it would be nice to have the definitions in a separate header. But >>>>> if they prefer just pulling in all of SCSI for it, well then I guess >>>>> it's pointless to move the header bits. Seems very heavy handed to me, >>>>> though. >>>> >>>> It might be heavy handed for the 3 remaining users of drivers/ide, >>> >>> Brutal :-) >> >> Heh. I noticed a similar sense buffer use in drivers/cdrom/cdrom.c >> too. Is this okay under the same considerations? > > No. Do not select an entire subsystem. Use depends on it instead. I looked at that first, but it seems it's designed for that. For example, "config ATA" already has a "select SCSI". It does look fishy, though, since "config SCSI" has a "depends" which would be ignored by "select". Luckily, all these uses already do a "depends on BLOCK" (directly or indirectly). -Kees
On 05/22/2018 04:39 PM, Kees Cook wrote: > On Tue, May 22, 2018 at 4:34 PM, Randy Dunlap <rdunlap@infradead.org> wrote: >> On 05/22/2018 04:31 PM, Kees Cook wrote: >>> On Tue, May 22, 2018 at 12:16 PM, Jens Axboe <axboe@kernel.dk> wrote: >>>> On 5/22/18 1:13 PM, Christoph Hellwig wrote: >>>>> On Tue, May 22, 2018 at 01:09:41PM -0600, Jens Axboe wrote: >>>>>> I think Martin and Christoph are objecting to moving the code to >>>>>> block/scsi_ioctl.h. I don't care too much about where the code is, but >>>>>> think it would be nice to have the definitions in a separate header. But >>>>>> if they prefer just pulling in all of SCSI for it, well then I guess >>>>>> it's pointless to move the header bits. Seems very heavy handed to me, >>>>>> though. >>>>> >>>>> It might be heavy handed for the 3 remaining users of drivers/ide, >>>> >>>> Brutal :-) >>> >>> Heh. I noticed a similar sense buffer use in drivers/cdrom/cdrom.c >>> too. Is this okay under the same considerations? >> >> No. Do not select an entire subsystem. Use depends on it instead. > > I looked at that first, but it seems it's designed for that. For > example, "config ATA" already has a "select SCSI". > > It does look fishy, though, since "config SCSI" has a "depends" which > would be ignored by "select". Luckily, all these uses already do a > "depends on BLOCK" (directly or indirectly). Linus has railed against selecting subsystems. We shouldn't be adding more IMHO, although it is difficult to get rid of ones that we already have.
On May 22, 2018, at 5:31 PM, Kees Cook <keescook@chromium.org> wrote: > >> On Tue, May 22, 2018 at 12:16 PM, Jens Axboe <axboe@kernel.dk> wrote: >>> On 5/22/18 1:13 PM, Christoph Hellwig wrote: >>>> On Tue, May 22, 2018 at 01:09:41PM -0600, Jens Axboe wrote: >>>> I think Martin and Christoph are objecting to moving the code to >>>> block/scsi_ioctl.h. I don't care too much about where the code is, but >>>> think it would be nice to have the definitions in a separate header. But >>>> if they prefer just pulling in all of SCSI for it, well then I guess >>>> it's pointless to move the header bits. Seems very heavy handed to me, >>>> though. >>> >>> It might be heavy handed for the 3 remaining users of drivers/ide, >> >> Brutal :-) > > Heh. I noticed a similar sense buffer use in drivers/cdrom/cdrom.c > too. Is this okay under the same considerations? This is going from somewhat crazy to pretty nuts, imho. I guess in practical terms it doesn’t matter that much, since most folks would be using sr. I still think a split would be vastly superior. Just keep the scsi code in drivers/scsi/ and make it independently selectable. Jens
On Tue, May 22, 2018 at 4:42 PM, Jens Axboe <axboe@kernel.dk> wrote: > On May 22, 2018, at 5:31 PM, Kees Cook <keescook@chromium.org> wrote: >> >>> On Tue, May 22, 2018 at 12:16 PM, Jens Axboe <axboe@kernel.dk> wrote: >>>> On 5/22/18 1:13 PM, Christoph Hellwig wrote: >>>>> On Tue, May 22, 2018 at 01:09:41PM -0600, Jens Axboe wrote: >>>>> I think Martin and Christoph are objecting to moving the code to >>>>> block/scsi_ioctl.h. I don't care too much about where the code is, but >>>>> think it would be nice to have the definitions in a separate header. But >>>>> if they prefer just pulling in all of SCSI for it, well then I guess >>>>> it's pointless to move the header bits. Seems very heavy handed to me, >>>>> though. >>>> >>>> It might be heavy handed for the 3 remaining users of drivers/ide, >>> >>> Brutal :-) >> >> Heh. I noticed a similar sense buffer use in drivers/cdrom/cdrom.c >> too. Is this okay under the same considerations? > > This is going from somewhat crazy to pretty nuts, imho. I guess in practical terms it doesn’t matter that much, since most folks would be using sr. I still think a split would be vastly superior. Just keep the scsi code in drivers/scsi/ and make it independently selectable. I had originally tied it to BLK_SCSI_REQUEST. Logically speaking, sense buffers are part of the request, and the CONFIG work is already done. This is roughly what I tried to do before, since scsi_ioctl.c is the only code pulled in for CONFIG_BLK_SCSI_REQUEST: $ git grep BLK_SCSI_REQUEST | grep Makefile block/Makefile:obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_ioctl.o Should I move to code to a new drivers/scsi/scsi_sense.c and add it to drivers/scsi/Makefile as: obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_sense.o Every place I want to use the code is already covered by CONFIG_BLK_SCSI_REQUEST, so it seems like I just need to know where to put the .c file. :P -Kees
On 5/22/18 5:49 PM, Kees Cook wrote: > On Tue, May 22, 2018 at 4:42 PM, Jens Axboe <axboe@kernel.dk> wrote: >> On May 22, 2018, at 5:31 PM, Kees Cook <keescook@chromium.org> wrote: >>> >>>> On Tue, May 22, 2018 at 12:16 PM, Jens Axboe <axboe@kernel.dk> wrote: >>>>> On 5/22/18 1:13 PM, Christoph Hellwig wrote: >>>>>> On Tue, May 22, 2018 at 01:09:41PM -0600, Jens Axboe wrote: >>>>>> I think Martin and Christoph are objecting to moving the code to >>>>>> block/scsi_ioctl.h. I don't care too much about where the code is, but >>>>>> think it would be nice to have the definitions in a separate header. But >>>>>> if they prefer just pulling in all of SCSI for it, well then I guess >>>>>> it's pointless to move the header bits. Seems very heavy handed to me, >>>>>> though. >>>>> >>>>> It might be heavy handed for the 3 remaining users of drivers/ide, >>>> >>>> Brutal :-) >>> >>> Heh. I noticed a similar sense buffer use in drivers/cdrom/cdrom.c >>> too. Is this okay under the same considerations? >> >> This is going from somewhat crazy to pretty nuts, imho. I guess in practical terms it doesn’t matter that much, since most folks would be using sr. I still think a split would be vastly superior. Just keep the scsi code in drivers/scsi/ and make it independently selectable. > > I had originally tied it to BLK_SCSI_REQUEST. Logically speaking, > sense buffers are part of the request, and the CONFIG work is already > done. This is roughly what I tried to do before, since scsi_ioctl.c is > the only code pulled in for CONFIG_BLK_SCSI_REQUEST: > > $ git grep BLK_SCSI_REQUEST | grep Makefile > block/Makefile:obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_ioctl.o > > Should I move to code to a new drivers/scsi/scsi_sense.c and add it to > drivers/scsi/Makefile as: > > obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_sense.o > > Every place I want to use the code is already covered by > CONFIG_BLK_SCSI_REQUEST, so it seems like I just need to know where to > put the .c file. :P I think this is so much saner than a SCSI select or dependency, so I'll have to disagree with Martin and Christoph. Just put it in drivers/scsi, if it's the location they care about.
On Wed, May 23, 2018 at 08:13:56AM -0600, Jens Axboe wrote: > > Should I move to code to a new drivers/scsi/scsi_sense.c and add it to > > drivers/scsi/Makefile as: > > > > obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_sense.o > > > > Every place I want to use the code is already covered by > > CONFIG_BLK_SCSI_REQUEST, so it seems like I just need to know where to > > put the .c file. :P > > I think this is so much saner than a SCSI select or dependency, so I'll > have to disagree with Martin and Christoph. Just put it in drivers/scsi, > if it's the location they care about. I actually plan to remove CONFIG_BLK_SCSI_REQUEST in a merge window or two. The only users are scsi and the ide layer, (virtio_blk support has already been accidentally disabled for a while), and getting rid of it allows to to shrink and simply the scsi data structures. But if you want this for now lets keep scsi_sense.c in drivers/scsi but depend on CONFIG_BLK_SCSI_REQUEST, that is easy enough to fix up.
On 5/23/18 8:25 AM, Christoph Hellwig wrote: > On Wed, May 23, 2018 at 08:13:56AM -0600, Jens Axboe wrote: >>> Should I move to code to a new drivers/scsi/scsi_sense.c and add it to >>> drivers/scsi/Makefile as: >>> >>> obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_sense.o >>> >>> Every place I want to use the code is already covered by >>> CONFIG_BLK_SCSI_REQUEST, so it seems like I just need to know where to >>> put the .c file. :P >> >> I think this is so much saner than a SCSI select or dependency, so I'll >> have to disagree with Martin and Christoph. Just put it in drivers/scsi, >> if it's the location they care about. > > I actually plan to remove CONFIG_BLK_SCSI_REQUEST in a merge window > or two. The only users are scsi and the ide layer, (virtio_blk > support has already been accidentally disabled for a while), and getting > rid of it allows to to shrink and simply the scsi data structures. > > But if you want this for now lets keep scsi_sense.c in drivers/scsi > but depend on CONFIG_BLK_SCSI_REQUEST, that is easy enough to fix up. It could be a stand-alone dependency, doesn't have to be BLK_SCSI_REQUEST. BLA_SCSI_SENSE or something would do. I don't care too much about that, mostly getting rid of the entire stack dependency.
On Wed, May 23, 2018 at 7:31 AM, Jens Axboe <axboe@kernel.dk> wrote: > On 5/23/18 8:25 AM, Christoph Hellwig wrote: >> On Wed, May 23, 2018 at 08:13:56AM -0600, Jens Axboe wrote: >>>> Should I move to code to a new drivers/scsi/scsi_sense.c and add it to >>>> drivers/scsi/Makefile as: >>>> >>>> obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_sense.o >>>> >>>> Every place I want to use the code is already covered by >>>> CONFIG_BLK_SCSI_REQUEST, so it seems like I just need to know where to >>>> put the .c file. :P >>> >>> I think this is so much saner than a SCSI select or dependency, so I'll >>> have to disagree with Martin and Christoph. Just put it in drivers/scsi, >>> if it's the location they care about. >> >> I actually plan to remove CONFIG_BLK_SCSI_REQUEST in a merge window >> or two. The only users are scsi and the ide layer, (virtio_blk >> support has already been accidentally disabled for a while), and getting >> rid of it allows to to shrink and simply the scsi data structures. >> >> But if you want this for now lets keep scsi_sense.c in drivers/scsi >> but depend on CONFIG_BLK_SCSI_REQUEST, that is easy enough to fix up. > > It could be a stand-alone dependency, doesn't have to be BLK_SCSI_REQUEST. > BLA_SCSI_SENSE or something would do. I don't care too much about that, > mostly getting rid of the entire stack dependency. Aaand, I can't do this and leave it in drivers/scsi because of drivers/Makefile: obj-$(CONFIG_SCSI) += scsi/ So: this needs to live in block/ just like CONFIG_BLK_SCSI_REQUEST's scsi_ioctl.c. I will split it into CONFIG_BLK_SCSI_SENSE, but I'll still need to move the code from drivers/scsi/ to block/. Is this okay? -Kees
Kees, > obj-$(CONFIG_SCSI) += scsi/ > > So: this needs to live in block/ just like CONFIG_BLK_SCSI_REQUEST's > scsi_ioctl.c. I will split it into CONFIG_BLK_SCSI_SENSE, but I'll > still need to move the code from drivers/scsi/ to block/. Is this > okay? The reason this sucks is that scsi_normalize_sense() is an inherent core feature in the SCSI layer. Dealing with sense data for ioctls is just a fringe use case. I don't want to get too hung up on what goes where. But architecturally it really irks me to move a core piece of SCSI state machine functionality out of the subsystem to accommodate ioctl handling. I'm traveling today so I probably won't get a chance to look closely until tomorrow morning.
On 5/23/18 2:52 PM, Kees Cook wrote: > On Wed, May 23, 2018 at 7:31 AM, Jens Axboe <axboe@kernel.dk> wrote: >> On 5/23/18 8:25 AM, Christoph Hellwig wrote: >>> On Wed, May 23, 2018 at 08:13:56AM -0600, Jens Axboe wrote: >>>>> Should I move to code to a new drivers/scsi/scsi_sense.c and add it to >>>>> drivers/scsi/Makefile as: >>>>> >>>>> obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_sense.o >>>>> >>>>> Every place I want to use the code is already covered by >>>>> CONFIG_BLK_SCSI_REQUEST, so it seems like I just need to know where to >>>>> put the .c file. :P >>>> >>>> I think this is so much saner than a SCSI select or dependency, so I'll >>>> have to disagree with Martin and Christoph. Just put it in drivers/scsi, >>>> if it's the location they care about. >>> >>> I actually plan to remove CONFIG_BLK_SCSI_REQUEST in a merge window >>> or two. The only users are scsi and the ide layer, (virtio_blk >>> support has already been accidentally disabled for a while), and getting >>> rid of it allows to to shrink and simply the scsi data structures. >>> >>> But if you want this for now lets keep scsi_sense.c in drivers/scsi >>> but depend on CONFIG_BLK_SCSI_REQUEST, that is easy enough to fix up. >> >> It could be a stand-alone dependency, doesn't have to be BLK_SCSI_REQUEST. >> BLA_SCSI_SENSE or something would do. I don't care too much about that, >> mostly getting rid of the entire stack dependency. > > Aaand, I can't do this and leave it in drivers/scsi because of drivers/Makefile: > > obj-$(CONFIG_SCSI) += scsi/ > > So: this needs to live in block/ just like CONFIG_BLK_SCSI_REQUEST's > scsi_ioctl.c. I will split it into CONFIG_BLK_SCSI_SENSE, but I'll > still need to move the code from drivers/scsi/ to block/. Is this > okay? Ugh, so that would necessitate a change there too. As I said before, I don't really care where it lives. I know the SCSI folks seem bothered by moving it, but in reality, it's not like this stuff will likely ever really change. Of the two choices (select entire SCSI stack, or just move this little bit), I know what I would consider the saner option...
On 05/23/2018 02:14 PM, Jens Axboe wrote: > On 5/23/18 2:52 PM, Kees Cook wrote: >> On Wed, May 23, 2018 at 7:31 AM, Jens Axboe <axboe@kernel.dk> wrote: >>> On 5/23/18 8:25 AM, Christoph Hellwig wrote: >>>> On Wed, May 23, 2018 at 08:13:56AM -0600, Jens Axboe wrote: >>>>>> Should I move to code to a new drivers/scsi/scsi_sense.c and add it to >>>>>> drivers/scsi/Makefile as: >>>>>> >>>>>> obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_sense.o >>>>>> >>>>>> Every place I want to use the code is already covered by >>>>>> CONFIG_BLK_SCSI_REQUEST, so it seems like I just need to know where to >>>>>> put the .c file. :P >>>>> >>>>> I think this is so much saner than a SCSI select or dependency, so I'll >>>>> have to disagree with Martin and Christoph. Just put it in drivers/scsi, >>>>> if it's the location they care about. >>>> >>>> I actually plan to remove CONFIG_BLK_SCSI_REQUEST in a merge window >>>> or two. The only users are scsi and the ide layer, (virtio_blk >>>> support has already been accidentally disabled for a while), and getting >>>> rid of it allows to to shrink and simply the scsi data structures. >>>> >>>> But if you want this for now lets keep scsi_sense.c in drivers/scsi >>>> but depend on CONFIG_BLK_SCSI_REQUEST, that is easy enough to fix up. >>> >>> It could be a stand-alone dependency, doesn't have to be BLK_SCSI_REQUEST. >>> BLA_SCSI_SENSE or something would do. I don't care too much about that, >>> mostly getting rid of the entire stack dependency. >> >> Aaand, I can't do this and leave it in drivers/scsi because of drivers/Makefile: >> >> obj-$(CONFIG_SCSI) += scsi/ >> >> So: this needs to live in block/ just like CONFIG_BLK_SCSI_REQUEST's >> scsi_ioctl.c. I will split it into CONFIG_BLK_SCSI_SENSE, but I'll >> still need to move the code from drivers/scsi/ to block/. Is this >> okay? > > Ugh, so that would necessitate a change there too. As I said before, > I don't really care where it lives. I know the SCSI folks seem bothered > by moving it, but in reality, it's not like this stuff will likely ever > really change. Of the two choices (select entire SCSI stack, or just move > this little bit), I know what I would consider the saner option... > or option 3: obj-y += scsi/ so that make descends into drivers/scsi/ and then builds whatever is needed, depending on individual kconfig options.
On 5/23/18 3:20 PM, Randy Dunlap wrote: > On 05/23/2018 02:14 PM, Jens Axboe wrote: >> On 5/23/18 2:52 PM, Kees Cook wrote: >>> On Wed, May 23, 2018 at 7:31 AM, Jens Axboe <axboe@kernel.dk> wrote: >>>> On 5/23/18 8:25 AM, Christoph Hellwig wrote: >>>>> On Wed, May 23, 2018 at 08:13:56AM -0600, Jens Axboe wrote: >>>>>>> Should I move to code to a new drivers/scsi/scsi_sense.c and add it to >>>>>>> drivers/scsi/Makefile as: >>>>>>> >>>>>>> obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_sense.o >>>>>>> >>>>>>> Every place I want to use the code is already covered by >>>>>>> CONFIG_BLK_SCSI_REQUEST, so it seems like I just need to know where to >>>>>>> put the .c file. :P >>>>>> >>>>>> I think this is so much saner than a SCSI select or dependency, so I'll >>>>>> have to disagree with Martin and Christoph. Just put it in drivers/scsi, >>>>>> if it's the location they care about. >>>>> >>>>> I actually plan to remove CONFIG_BLK_SCSI_REQUEST in a merge window >>>>> or two. The only users are scsi and the ide layer, (virtio_blk >>>>> support has already been accidentally disabled for a while), and getting >>>>> rid of it allows to to shrink and simply the scsi data structures. >>>>> >>>>> But if you want this for now lets keep scsi_sense.c in drivers/scsi >>>>> but depend on CONFIG_BLK_SCSI_REQUEST, that is easy enough to fix up. >>>> >>>> It could be a stand-alone dependency, doesn't have to be BLK_SCSI_REQUEST. >>>> BLA_SCSI_SENSE or something would do. I don't care too much about that, >>>> mostly getting rid of the entire stack dependency. >>> >>> Aaand, I can't do this and leave it in drivers/scsi because of drivers/Makefile: >>> >>> obj-$(CONFIG_SCSI) += scsi/ >>> >>> So: this needs to live in block/ just like CONFIG_BLK_SCSI_REQUEST's >>> scsi_ioctl.c. I will split it into CONFIG_BLK_SCSI_SENSE, but I'll >>> still need to move the code from drivers/scsi/ to block/. Is this >>> okay? >> >> Ugh, so that would necessitate a change there too. As I said before, >> I don't really care where it lives. I know the SCSI folks seem bothered >> by moving it, but in reality, it's not like this stuff will likely ever >> really change. Of the two choices (select entire SCSI stack, or just move >> this little bit), I know what I would consider the saner option... >> > > or option 3: > > obj-y += scsi/ > > so that make descends into drivers/scsi/ and then builds whatever is needed, > depending on individual kconfig options. Right, that was the initial option, the later two are the other options.
On 05/23/2018 02:22 PM, Jens Axboe wrote: > On 5/23/18 3:20 PM, Randy Dunlap wrote: >> On 05/23/2018 02:14 PM, Jens Axboe wrote: >>> On 5/23/18 2:52 PM, Kees Cook wrote: >>>> On Wed, May 23, 2018 at 7:31 AM, Jens Axboe <axboe@kernel.dk> wrote: >>>>> On 5/23/18 8:25 AM, Christoph Hellwig wrote: >>>>>> On Wed, May 23, 2018 at 08:13:56AM -0600, Jens Axboe wrote: >>>>>>>> Should I move to code to a new drivers/scsi/scsi_sense.c and add it to >>>>>>>> drivers/scsi/Makefile as: >>>>>>>> >>>>>>>> obj-$(CONFIG_BLK_SCSI_REQUEST) += scsi_sense.o >>>>>>>> >>>>>>>> Every place I want to use the code is already covered by >>>>>>>> CONFIG_BLK_SCSI_REQUEST, so it seems like I just need to know where to >>>>>>>> put the .c file. :P >>>>>>> >>>>>>> I think this is so much saner than a SCSI select or dependency, so I'll >>>>>>> have to disagree with Martin and Christoph. Just put it in drivers/scsi, >>>>>>> if it's the location they care about. >>>>>> >>>>>> I actually plan to remove CONFIG_BLK_SCSI_REQUEST in a merge window >>>>>> or two. The only users are scsi and the ide layer, (virtio_blk >>>>>> support has already been accidentally disabled for a while), and getting >>>>>> rid of it allows to to shrink and simply the scsi data structures. >>>>>> >>>>>> But if you want this for now lets keep scsi_sense.c in drivers/scsi >>>>>> but depend on CONFIG_BLK_SCSI_REQUEST, that is easy enough to fix up. >>>>> >>>>> It could be a stand-alone dependency, doesn't have to be BLK_SCSI_REQUEST. >>>>> BLA_SCSI_SENSE or something would do. I don't care too much about that, >>>>> mostly getting rid of the entire stack dependency. >>>> >>>> Aaand, I can't do this and leave it in drivers/scsi because of drivers/Makefile: >>>> >>>> obj-$(CONFIG_SCSI) += scsi/ >>>> >>>> So: this needs to live in block/ just like CONFIG_BLK_SCSI_REQUEST's >>>> scsi_ioctl.c. I will split it into CONFIG_BLK_SCSI_SENSE, but I'll >>>> still need to move the code from drivers/scsi/ to block/. Is this >>>> okay? >>> >>> Ugh, so that would necessitate a change there too. As I said before, >>> I don't really care where it lives. I know the SCSI folks seem bothered >>> by moving it, but in reality, it's not like this stuff will likely ever >>> really change. Of the two choices (select entire SCSI stack, or just move >>> this little bit), I know what I would consider the saner option... >>> >> >> or option 3: >> >> obj-y += scsi/ >> >> so that make descends into drivers/scsi/ and then builds whatever is needed, >> depending on individual kconfig options. > > Right, that was the initial option, the later two are the other options. > Sorry, I'm late to the party.
On Wed, May 23, 2018 at 03:14:19PM -0600, Jens Axboe wrote: > Ugh, so that would necessitate a change there too. As I said before, > I don't really care where it lives. I know the SCSI folks seem bothered > by moving it, but in reality, it's not like this stuff will likely ever > really change. Of the two choices (select entire SCSI stack, or just move > this little bit), I know what I would consider the saner option... Oh well. How about something like this respin of Kees' series? http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/sense-cleanup
On Thu, May 24, 2018 at 1:00 AM, Christoph Hellwig <hch@infradead.org> wrote: > On Wed, May 23, 2018 at 03:14:19PM -0600, Jens Axboe wrote: >> Ugh, so that would necessitate a change there too. As I said before, >> I don't really care where it lives. I know the SCSI folks seem bothered >> by moving it, but in reality, it's not like this stuff will likely ever >> really change. Of the two choices (select entire SCSI stack, or just move >> this little bit), I know what I would consider the saner option... > > Oh well. How about something like this respin of Kees' series? > > http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/sense-cleanup Does the CONFIG_PCMCIA in drivers/scsi/Makefile now get exposed in weird config cases? Otherwise, yeah, looks good to me. Thanks! -Kees
On Thu, May 24, 2018 at 10:06:59AM -0700, Kees Cook wrote: > On Thu, May 24, 2018 at 1:00 AM, Christoph Hellwig <hch@infradead.org> wrote: > > On Wed, May 23, 2018 at 03:14:19PM -0600, Jens Axboe wrote: > >> Ugh, so that would necessitate a change there too. As I said before, > >> I don't really care where it lives. I know the SCSI folks seem bothered > >> by moving it, but in reality, it's not like this stuff will likely ever > >> really change. Of the two choices (select entire SCSI stack, or just move > >> this little bit), I know what I would consider the saner option... > > > > Oh well. How about something like this respin of Kees' series? > > > > http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/sense-cleanup > > Does the CONFIG_PCMCIA in drivers/scsi/Makefile now get exposed in > weird config cases? That just includes drivers/scsi/pcmcia/Makefile, which only has three conditional modules in it, so it should be fine. > Otherwise, yeah, looks good to me. Thanks! Can you pick up my tweaks and ressend?
On Thu, May 24, 2018 at 10:06:59AM -0700, Kees Cook wrote: > On Thu, May 24, 2018 at 1:00 AM, Christoph Hellwig <hch@infradead.org> wrote: > > On Wed, May 23, 2018 at 03:14:19PM -0600, Jens Axboe wrote: > >> Ugh, so that would necessitate a change there too. As I said before, > >> I don't really care where it lives. I know the SCSI folks seem bothered > >> by moving it, but in reality, it's not like this stuff will likely ever > >> really change. Of the two choices (select entire SCSI stack, or just move > >> this little bit), I know what I would consider the saner option... > > > > Oh well. How about something like this respin of Kees' series? > > > > http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/sense-cleanup > > Does the CONFIG_PCMCIA in drivers/scsi/Makefile now get exposed in > weird config cases? > > Otherwise, yeah, looks good to me. Thanks! Btw, did you plan to resend the series with this and your changes applied?
Hi Christoph, On Sun, Jul 8, 2018 at 1:23 PM, Christoph Hellwig <hch@infradead.org> wrote: > On Thu, May 24, 2018 at 10:06:59AM -0700, Kees Cook wrote: >> On Thu, May 24, 2018 at 1:00 AM, Christoph Hellwig <hch@infradead.org> wrote: >> > On Wed, May 23, 2018 at 03:14:19PM -0600, Jens Axboe wrote: >> >> Ugh, so that would necessitate a change there too. As I said before, >> >> I don't really care where it lives. I know the SCSI folks seem bothered >> >> by moving it, but in reality, it's not like this stuff will likely ever >> >> really change. Of the two choices (select entire SCSI stack, or just move >> >> this little bit), I know what I would consider the saner option... >> > >> > Oh well. How about something like this respin of Kees' series? >> > >> > http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/sense-cleanup >> >> Does the CONFIG_PCMCIA in drivers/scsi/Makefile now get exposed in >> weird config cases? >> >> Otherwise, yeah, looks good to me. Thanks! > > Btw, did you plan to resend the series with this and your changes > applied? Yeah, I've gotten distracted. I'll try to get to it in the next few days. Thanks for the reminder! -Kees
On Mon, Jul 09, 2018 at 08:56:50AM -0700, Kees Cook wrote: > > Btw, did you plan to resend the series with this and your changes > > applied? > > Yeah, I've gotten distracted. I'll try to get to it in the next few days. > > Thanks for the reminder! Another little reminder. I'd hate to miss it for 4.19.
On Tue, Jul 31, 2018 at 12:53 AM, Christoph Hellwig <hch@infradead.org> wrote: > On Mon, Jul 09, 2018 at 08:56:50AM -0700, Kees Cook wrote: >> > Btw, did you plan to resend the series with this and your changes >> > applied? >> >> Yeah, I've gotten distracted. I'll try to get to it in the next few days. >> >> Thanks for the reminder! > > Another little reminder. I'd hate to miss it for 4.19. Okay, finally sent. Thanks for the reminders. :) -Kees
diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig index ad9b687a236a..220ff321c102 100644 --- a/drivers/block/Kconfig +++ b/drivers/block/Kconfig @@ -79,7 +79,7 @@ config GDROM tristate "SEGA Dreamcast GD-ROM drive" depends on SH_DREAMCAST select CDROM - select BLK_SCSI_REQUEST # only for the generic cdrom code + select SCSI help A standard SEGA Dreamcast comes with a modified CD ROM drive called a "GD-ROM" by SEGA to signify it is capable of reading special disks @@ -345,7 +345,7 @@ config CDROM_PKTCDVD tristate "Packet writing on CD/DVD media (DEPRECATED)" depends on !UML select CDROM - select BLK_SCSI_REQUEST + select SCSI help Note: This driver is deprecated and will be removed from the kernel in the near future! diff --git a/drivers/block/paride/Kconfig b/drivers/block/paride/Kconfig index f8bd6ef3605a..7fdfcc5eaca5 100644 --- a/drivers/block/paride/Kconfig +++ b/drivers/block/paride/Kconfig @@ -27,7 +27,7 @@ config PARIDE_PCD tristate "Parallel port ATAPI CD-ROMs" depends on PARIDE select CDROM - select BLK_SCSI_REQUEST # only for the generic cdrom code + select SCSI ---help--- This option enables the high-level driver for ATAPI CD-ROM devices connected through a parallel port. If you chose to build PARIDE