lkml.org 
[lkml]   [2014]   [Mar]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v2] scsi: Change sense buffer size to 252
    On 03/14/2014 07:00 AM, Fam Zheng wrote:
    > According to SPC-4, section 4.5.2.1, 252 is the limit of sense data. So
    > increase the values.
    >
    > Tested by hacking QEMU to fake virtio-scsi request sense len to 252.
    > Without this patch the driver stops working immediately when it gets the
    > request.
    >
    > Signed-off-by: Fam Zheng <famz@redhat.com>
    > ---
    > include/linux/virtio_scsi.h | 2 +-
    > include/scsi/scsi_cmnd.h | 2 +-
    > 2 files changed, 2 insertions(+), 2 deletions(-)
    >
    > diff --git a/include/linux/virtio_scsi.h b/include/linux/virtio_scsi.h
    > index 4195b97..a437f7f 100644
    > --- a/include/linux/virtio_scsi.h
    > +++ b/include/linux/virtio_scsi.h
    > @@ -28,7 +28,7 @@
    > #define _LINUX_VIRTIO_SCSI_H
    >
    > #define VIRTIO_SCSI_CDB_SIZE 32
    > -#define VIRTIO_SCSI_SENSE_SIZE 96
    > +#define VIRTIO_SCSI_SENSE_SIZE 252
    >
    > /* SCSI command request, followed by data-out */
    > struct virtio_scsi_cmd_req {
    > diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h
    > index 91558a1..a64dac03 100644
    > --- a/include/scsi/scsi_cmnd.h
    > +++ b/include/scsi/scsi_cmnd.h
    > @@ -104,7 +104,7 @@ struct scsi_cmnd {
    > struct request *request; /* The command we are
    > working on */
    >
    > -#define SCSI_SENSE_BUFFERSIZE 96
    > +#define SCSI_SENSE_BUFFERSIZE 252
    > unsigned char *sense_buffer;
    > /* obtained by REQUEST SENSE when
    > * CHECK CONDITION is received on original
    >
    Not without careful review.
    Blindly increasing the buffersize is not a good idea; this define is
    used at several locations and even within the drivers themselves.
    So we cannot just increase the define for the SCSI stack.

    And, btw, so far I haven't come across any issue where a sense
    buffer overflow occurred. We first need to implement a proper sense
    code handling (descriptor sense parsing etc) before we need to worry
    about this.

    Cheers,

    Hannes
    --
    Dr. Hannes Reinecke zSeries & Storage
    hare@suse.de +49 911 74053 688
    SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
    GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2014-03-14 08:41    [W:2.241 / U:0.516 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site