From patchwork Tue Sep 15 14:55:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Laight X-Patchwork-Id: 1364455 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=ACULAB.COM Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BrRCf4cJdz9sTN for ; Wed, 16 Sep 2020 00:57:18 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726245AbgIOO4n convert rfc822-to-8bit (ORCPT ); Tue, 15 Sep 2020 10:56:43 -0400 Received: from eu-smtp-delivery-151.mimecast.com ([185.58.86.151]:29387 "EHLO eu-smtp-delivery-151.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727354AbgIOOz3 (ORCPT ); Tue, 15 Sep 2020 10:55:29 -0400 Received: from AcuMS.aculab.com (156.67.243.126 [156.67.243.126]) (Using TLS) by relay.mimecast.com with ESMTP id uk-mta-37-dfVtB9cCPvahLiPigLatfA-1; Tue, 15 Sep 2020 15:55:25 +0100 X-MC-Unique: dfVtB9cCPvahLiPigLatfA-1 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) by AcuMS.aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Tue, 15 Sep 2020 15:55:24 +0100 Received: from AcuMS.Aculab.com ([fe80::43c:695e:880f:8750]) by AcuMS.aculab.com ([fe80::43c:695e:880f:8750%12]) with mapi id 15.00.1347.000; Tue, 15 Sep 2020 15:55:24 +0100 From: David Laight To: "linux-kernel@vger.kernel.org" , "netdev@vger.kernel.org" , "io-uring@vger.kernel.org" , Jens Axboe , "David S. Miller" , Al Viro , linux-fsdevel Subject: [PATCH 5/9 next] scsi: Use iovec_import() instead of import_iovec(). Thread-Topic: [PATCH 5/9 next] scsi: Use iovec_import() instead of import_iovec(). Thread-Index: AdaLbdBrrJnvb+q4Sa6RtPibF1KBcw== Date: Tue, 15 Sep 2020 14:55:24 +0000 Message-ID: <27be46ece36c42d6a7dabf62c6ac7a98@AcuMS.aculab.com> Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=C51A453 smtp.mailfrom=david.laight@aculab.com X-Mimecast-Spam-Score: 0.001 X-Mimecast-Originator: aculab.com Content-Language: en-US Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org iovec_import() has a safer calling convention than import_iovec(). Signed-off-by: David Laight --- block/scsi_ioctl.c | 14 ++++++++------ drivers/scsi/sg.c | 14 +++++++------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c index ef722f04f88a..0343918a84d3 100644 --- a/block/scsi_ioctl.c +++ b/block/scsi_ioctl.c @@ -331,20 +331,22 @@ static int sg_io(struct request_queue *q, struct gendisk *bd_disk, ret = 0; if (hdr->iovec_count) { struct iov_iter i; - struct iovec *iov = NULL; + struct iovec *iov; #ifdef CONFIG_COMPAT if (in_compat_syscall()) - ret = compat_import_iovec(rq_data_dir(rq), + iov = compat_iovec_import(rq_data_dir(rq), hdr->dxferp, hdr->iovec_count, - 0, &iov, &i); + NULL, &i); else #endif - ret = import_iovec(rq_data_dir(rq), + iov = iovec_import(rq_data_dir(rq), hdr->dxferp, hdr->iovec_count, - 0, &iov, &i); - if (ret < 0) + NULL, &i); + if (IS_ERR(iov)) { + ret = PTR_ERR(iov); goto out_free_cdb; + } /* SG_IO howto says that the shorter of the two wins */ iov_iter_truncate(&i, hdr->dxfer_len); diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index 20472aaaf630..1dbc0a74add5 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -1817,19 +1817,19 @@ sg_start_req(Sg_request *srp, unsigned char *cmd) } if (iov_count) { - struct iovec *iov = NULL; + struct iovec *iov; struct iov_iter i; #ifdef CONFIG_COMPAT if (in_compat_syscall()) - res = compat_import_iovec(rw, hp->dxferp, iov_count, - 0, &iov, &i); + iov = compat_iovec_import(rw, hp->dxferp, iov_count, + NULL, &i); else #endif - res = import_iovec(rw, hp->dxferp, iov_count, - 0, &iov, &i); - if (res < 0) - return res; + iov = iovec_import(rw, hp->dxferp, iov_count, + NULL, &i); + if (IS_ERR(iov)) + return PTR_ERR(iov); iov_iter_truncate(&i, hp->dxfer_len); if (!iov_iter_count(&i)) {