From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752107AbbHMIxy (ORCPT ); Thu, 13 Aug 2015 04:53:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59077 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751846AbbHMIxw (ORCPT ); Thu, 13 Aug 2015 04:53:52 -0400 From: Vitaly Kuznetsov To: "James E.J. Bottomley" Cc: "linux-scsi\@vger.kernel.org" , Long Li , Haiyang Zhang , "devel\@linuxdriverproject.org" , "linux-kernel\@vger.kernel.org" , Radim =?utf-8?B?S3LEjW3DocWZ?= , KY Srinivasan Subject: Re: [PATCH] scsi: storvsc: be more picky about scmnd->sc_data_direction References: <1435248731-29085-1-git-send-email-vkuznets@redhat.com> Date: Thu, 13 Aug 2015 10:53:48 +0200 In-Reply-To: (KY Srinivasan's message of "Sun, 28 Jun 2015 02:36:22 +0000") Message-ID: <87si7nefhf.fsf@vitty.brq.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org KY Srinivasan writes: >> -----Original Message----- >> From: Vitaly Kuznetsov [mailto:vkuznets@redhat.com] >> Sent: Thursday, June 25, 2015 9:12 AM >> To: linux-scsi@vger.kernel.org >> Cc: Long Li; KY Srinivasan; Haiyang Zhang; James E.J. Bottomley; >> devel@linuxdriverproject.org; linux-kernel@vger.kernel.org; Radim Krčmář >> Subject: [PATCH] scsi: storvsc: be more picky about scmnd- >> >sc_data_direction >> >> Under the 'default' case in scmnd->sc_data_direction we have 3 options: >> - DMA_NONE which we handle correctly. >> - DMA_BIDIRECTIONAL which is never supposed to be set by SCSI stack. >> - Garbage value. >> >> Do WARN() and return -EINVAL in the last two cases. virtio_scsi does >> BUG_ON() here but it looks like an overkill. >> >> Reported-by: Radim Krčmář >> Signed-off-by: Vitaly Kuznetsov > Signed-off-by: K. Y. Srinivasan Sorry for the ping but it seems the fix never made it to scsi tree... >> --- >> drivers/scsi/storvsc_drv.c | 10 +++++++++- >> 1 file changed, 9 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c >> index 3c6584f..61f4855 100644 >> --- a/drivers/scsi/storvsc_drv.c >> +++ b/drivers/scsi/storvsc_drv.c >> @@ -1598,10 +1598,18 @@ static int storvsc_queuecommand(struct >> Scsi_Host *host, struct scsi_cmnd *scmnd) >> vm_srb->data_in = READ_TYPE; >> vm_srb->win8_extension.srb_flags |= >> SRB_FLAGS_DATA_IN; >> break; >> - default: >> + case DMA_NONE: >> vm_srb->data_in = UNKNOWN_TYPE; >> vm_srb->win8_extension.srb_flags |= >> SRB_FLAGS_NO_DATA_TRANSFER; >> break; >> + default: >> + /* >> + * This is DMA_BIDIRECTIONAL or something else we are >> never >> + * supposed to see here. >> + */ >> + WARN(1, "Unexpected data direction: %d\n", >> + scmnd->sc_data_direction); >> + return -EINVAL; >> } >> >> >> -- >> 2.4.3 -- Vitaly