From: "Fabio M. De Francesco" <fmdefrancesco@gmail.com>
To: Larry Finger <Larry.Finger@lwfinger.net>,
Phillip Potter <phil@philpotter.co.uk>,
Pavel Skripkin <paskripkin@gmail.com>,
linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
David Laight <david.Laight@aculab.com>,
Dan Carpenter <dan.carpenter@oracle.com>,
Martin Kaiser <martin@kaiser.cx>
Cc: "Fabio M . De Francesco" <fmdefrancesco@gmail.com>
Subject: [PATCH v9 15/16] staging: r8188eu: remove shared buffer for USB requests
Date: Tue, 21 Sep 2021 20:18:33 +0200 [thread overview]
Message-ID: <20210921181834.29677-16-fmdefrancesco@gmail.com> (raw)
In-Reply-To: <20210921181834.29677-1-fmdefrancesco@gmail.com>
From: Pavel Skripkin <paskripkin@gmail.com>
Remove the shared buffer for USB requests because it is not necessary
and use a local on stack variable since the new Core USB API does not
have the constraints of usb_control_msg().
Co-developed-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Signed-off-by: Pavel Skripkin <paskripkin@gmail.com>
---
drivers/staging/r8188eu/hal/usb_ops_linux.c | 15 ++++++---------
drivers/staging/r8188eu/include/drv_types.h | 3 ---
drivers/staging/r8188eu/os_dep/usb_intf.c | 14 +-------------
3 files changed, 7 insertions(+), 25 deletions(-)
diff --git a/drivers/staging/r8188eu/hal/usb_ops_linux.c b/drivers/staging/r8188eu/hal/usb_ops_linux.c
index 88db7488b3a2..3ede93cd68d6 100644
--- a/drivers/staging/r8188eu/hal/usb_ops_linux.c
+++ b/drivers/staging/r8188eu/hal/usb_ops_linux.c
@@ -14,7 +14,7 @@ static int usb_read(struct intf_hdl *intf, u16 value, void *data, u8 size)
struct dvobj_priv *dvobjpriv = adapter_to_dvobj(adapt);
struct usb_device *udev = dvobjpriv->pusbdev;
int status;
- u8 *io_buf; /* Pointer to I/O buffer */
+ u8 io_buf[4];
mutex_lock(&dvobjpriv->usb_vendor_req_mutex);
@@ -23,9 +23,6 @@ static int usb_read(struct intf_hdl *intf, u16 value, void *data, u8 size)
goto mutex_unlock;
}
- /* Acquire IO memory for vendorreq */
- io_buf = dvobjpriv->usb_vendor_req_buf;
-
status = usb_control_msg_recv(udev, 0, REALTEK_USB_VENQT_CMD_REQ,
REALTEK_USB_VENQT_READ, value,
REALTEK_USB_VENQT_CMD_IDX, io_buf,
@@ -70,14 +67,14 @@ static int usb_write(struct intf_hdl *intf, u16 value, void *data, u8 size)
struct dvobj_priv *dvobjpriv = adapter_to_dvobj(adapt);
struct usb_device *udev = dvobjpriv->pusbdev;
int status;
- u8 *io_buf; /* Pointer to I/O buffer */
+ u8 io_buf[VENDOR_CMD_MAX_DATA_LEN];
mutex_lock(&dvobjpriv->usb_vendor_req_mutex);
- if (adapt->bSurpriseRemoved || adapt->pwrctrlpriv.pnp_bstop_trx)
- return -EPERM;
-
- io_buf = dvobjpriv->usb_vendor_req_buf;
+ if (adapt->bSurpriseRemoved || adapt->pwrctrlpriv.pnp_bstop_trx) {
+ status = -EPERM;
+ goto mutex_unlock;
+ }
memcpy(io_buf, data, size);
status = usb_control_msg_send(udev, 0, REALTEK_USB_VENQT_CMD_REQ,
diff --git a/drivers/staging/r8188eu/include/drv_types.h b/drivers/staging/r8188eu/include/drv_types.h
index c96a33c8c621..6d63429d06c6 100644
--- a/drivers/staging/r8188eu/include/drv_types.h
+++ b/drivers/staging/r8188eu/include/drv_types.h
@@ -168,9 +168,6 @@ struct dvobj_priv {
struct semaphore usb_suspend_sema;
struct mutex usb_vendor_req_mutex;
- u8 *usb_alloc_vendor_req_buf;
- u8 *usb_vendor_req_buf;
-
struct usb_interface *pusbintf;
struct usb_device *pusbdev;
diff --git a/drivers/staging/r8188eu/os_dep/usb_intf.c b/drivers/staging/r8188eu/os_dep/usb_intf.c
index 11a584cbe9d8..5ab42d55207f 100644
--- a/drivers/staging/r8188eu/os_dep/usb_intf.c
+++ b/drivers/staging/r8188eu/os_dep/usb_intf.c
@@ -75,24 +75,12 @@ static struct rtw_usb_drv *usb_drv = &rtl8188e_usb_drv;
static u8 rtw_init_intf_priv(struct dvobj_priv *dvobj)
{
- u8 rst = _SUCCESS;
-
mutex_init(&dvobj->usb_vendor_req_mutex);
-
- dvobj->usb_alloc_vendor_req_buf = kzalloc(MAX_USB_IO_CTL_SIZE, GFP_KERNEL);
- if (!dvobj->usb_alloc_vendor_req_buf) {
- DBG_88E("alloc usb_vendor_req_buf failed... /n");
- rst = _FAIL;
- goto exit;
- }
- dvobj->usb_vendor_req_buf = (u8 *)N_BYTE_ALIGMENT((size_t)(dvobj->usb_alloc_vendor_req_buf), ALIGNMENT_UNIT);
-exit:
- return rst;
+ return _SUCCESS;
}
static void rtw_deinit_intf_priv(struct dvobj_priv *dvobj)
{
- kfree(dvobj->usb_alloc_vendor_req_buf);
mutex_destroy(&dvobj->usb_vendor_req_mutex);
}
--
2.33.0
next prev parent reply other threads:[~2021-09-21 18:20 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-21 18:18 [PATCH v9 00/16] staging: r8188eu: shorten and simplify calls chains Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 01/16] staging: r8188eu: clean up symbols in usbctrl_vendorreq() Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 02/16] staging: r8188eu: reorder declarations " Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 03/16] staging: r8188eu: remove unnecessary test " Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 04/16] staging: r8188eu: reorder comments " Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 05/16] staging: r8188eu: remove a comment from usbctrl_vendorreq() Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 06/16] staging: r8188eu: rename symbols in rtw_read*() and rtw_write*() Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 07/16] staging: r8188eu: remove casts from rtw_{read,write}*() Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 08/16] staging: r8188eu: change the type of a variable in rtw_write16() Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 09/16] staging: r8188eu: remove an buffer from rtw_writeN() Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 10/16] staging: r8188eu: remove a bitwise AND " Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 11/16] staging: r8188eu: change the type of a variable in rtw_read16() Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 12/16] staging: r8188eu: Remove a test from usbctrl_vendorreq() Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 13/16] staging: r8188eu: call new usb_read() from rtw_read{8,16,32}() Fabio M. De Francesco
2021-09-21 18:18 ` [PATCH v9 14/16] staging: r8188eu: call new usb_write() from rtw_write{8,16,32,N}() Fabio M. De Francesco
2021-09-21 18:18 ` Fabio M. De Francesco [this message]
2021-09-21 18:18 ` [PATCH v9 16/16] staging: r8188eu: remove usb_vendor_req_mutex Fabio M. De Francesco
2021-09-22 13:21 ` Pavel Skripkin
2021-09-23 8:47 ` Pavel Skripkin
2021-09-23 10:12 ` Pavel Skripkin
2021-09-23 11:07 ` Greg KH
2021-09-23 11:13 ` Pavel Skripkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210921181834.29677-16-fmdefrancesco@gmail.com \
--to=fmdefrancesco@gmail.com \
--cc=Larry.Finger@lwfinger.net \
--cc=dan.carpenter@oracle.com \
--cc=david.Laight@aculab.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=martin@kaiser.cx \
--cc=paskripkin@gmail.com \
--cc=phil@philpotter.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).