Commit ca0e0d84 authored by Martin Kaiser's avatar Martin Kaiser Committed by Greg Kroah-Hartman
Browse files

staging: r8188eu: pass a struct recv_buf to rtw_read_port



The rtw_read_port function needs a struct recv_buf for preparing the usb
transfer.

Replace its u8 *rmem parameter with a struct recv_buf pointer to avoid
casts in the caller and in rtw_read_port.

Signed-off-by: default avatarMartin Kaiser <martin@kaiser.cx>
Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com> # Edimax N150
Link: https://lore.kernel.org/r/20230206201800.139195-2-martin@kaiser.cx


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3d281bdb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -860,7 +860,7 @@ unsigned int rtl8188eu_inirp_init(struct adapter *Adapter)
	/* issue Rx irp to receive data */
	precvbuf = (struct recv_buf *)precvpriv->precv_buf;
	for (i = 0; i < NR_RECVBUFF; i++) {
		if (!rtw_read_port(Adapter, (unsigned char *)precvbuf)) {
		if (!rtw_read_port(Adapter, precvbuf)) {
			status = _FAIL;
			goto exit;
		}
+4 −5
Original line number Diff line number Diff line
@@ -364,7 +364,7 @@ static void usb_read_port_complete(struct urb *purb)
	if (purb->status == 0) { /* SUCCESS */
		if ((purb->actual_length > MAX_RECVBUF_SZ) || (purb->actual_length < RXDESC_SIZE)) {
			precvbuf->reuse = true;
			rtw_read_port(adapt, (unsigned char *)precvbuf);
			rtw_read_port(adapt, precvbuf);
		} else {
			rtw_reset_continual_urb_error(adapter_to_dvobj(adapt));

@@ -376,7 +376,7 @@ static void usb_read_port_complete(struct urb *purb)

			precvbuf->pskb = NULL;
			precvbuf->reuse = false;
			rtw_read_port(adapt, (unsigned char *)precvbuf);
			rtw_read_port(adapt, precvbuf);
		}
	} else {
		skb_put(precvbuf->pskb, purb->actual_length);
@@ -396,7 +396,7 @@ static void usb_read_port_complete(struct urb *purb)
		case -EPROTO:
		case -EOVERFLOW:
			precvbuf->reuse = true;
			rtw_read_port(adapt, (unsigned char *)precvbuf);
			rtw_read_port(adapt, precvbuf);
			break;
		case -EINPROGRESS:
			break;
@@ -406,10 +406,9 @@ static void usb_read_port_complete(struct urb *purb)
	}
}

u32 rtw_read_port(struct adapter *adapter, u8 *rmem)
u32 rtw_read_port(struct adapter *adapter, struct recv_buf *precvbuf)
{
	struct urb *purb = NULL;
	struct recv_buf	*precvbuf = (struct recv_buf *)rmem;
	struct dvobj_priv	*pdvobj = adapter_to_dvobj(adapter);
	struct recv_priv	*precvpriv = &adapter->recvpriv;
	struct usb_device	*pusbd = pdvobj->pusbdev;
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@
int __must_check rtw_read8(struct adapter *adapter, u32 addr, u8 *data);
int __must_check rtw_read16(struct adapter *adapter, u32 addr, u16 *data);
int __must_check rtw_read32(struct adapter *adapter, u32 addr, u32 *data);
u32 rtw_read_port(struct adapter *adapter, u8 *pmem);
u32 rtw_read_port(struct adapter *adapter, struct recv_buf *precvbuf);
void rtw_read_port_cancel(struct adapter *adapter);

int rtw_write8(struct adapter *adapter, u32 addr, u8 val);