lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Fri, 10 Feb 2023 14:21:00 +0100
From:   Simon Horman <simon.horman@...igine.com>
To:     Sascha Hauer <s.hauer@...gutronix.de>
Cc:     linux-wireless@...r.kernel.org, Neo Jou <neojou@...il.com>,
        Hans Ulli Kroll <linux@...i-kroll.de>,
        Ping-Ke Shih <pkshih@...ltek.com>,
        Yan-Hsuan Chuang <tony0620emma@...il.com>,
        Kalle Valo <kvalo@...nel.org>, netdev@...r.kernel.org,
        linux-kernel@...r.kernel.org,
        Martin Blumenstingl <martin.blumenstingl@...glemail.com>,
        kernel@...gutronix.de, Alexander Hochbaum <alex@...udo.com>,
        Da Xue <da@...re.computer>, Po-Hao Huang <phhuang@...ltek.com>,
        Andreas Henriksson <andreas@...al.se>,
        Viktor Petrenko <g0000ga@...il.com>
Subject: Re: [PATCH 2/2] wifi: rtw88: usb: Fix urbs with size multiple of
 bulkout_size

On Fri, Feb 10, 2023 at 10:26:42AM +0100, Sascha Hauer wrote:
> The hardware can't handle urbs with a data size of multiple of
> bulkout_size. With such a packet the endpoint gets stuck and only
> replugging the hardware helps.
> 
> Fix this by moving the header eight bytes down, thus making the packet
> eight bytes bigger. The same is done in rtw_usb_write_data_rsvd_page()
> already, but not yet for the tx data.
> 
> Fixes: a82dfd33d1237 ("wifi: rtw88: Add common USB chip support")
> Signed-off-by: Sascha Hauer <s.hauer@...gutronix.de>
> ---
>  drivers/net/wireless/realtek/rtw88/tx.h  |  2 ++
>  drivers/net/wireless/realtek/rtw88/usb.c | 34 +++++++++++++++---------
>  2 files changed, 24 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/net/wireless/realtek/rtw88/tx.h b/drivers/net/wireless/realtek/rtw88/tx.h
> index a2f3ac326041b..38ce9c7ae62ed 100644
> --- a/drivers/net/wireless/realtek/rtw88/tx.h
> +++ b/drivers/net/wireless/realtek/rtw88/tx.h
> @@ -75,6 +75,8 @@
>  	le32p_replace_bits((__le32 *)(txdesc) + 0x07, value, GENMASK(15, 0))
>  #define SET_TX_DESC_DMA_TXAGG_NUM(txdesc, value)				\
>  	le32p_replace_bits((__le32 *)(txdesc) + 0x07, value, GENMASK(31, 24))
> +#define GET_TX_DESC_OFFSET(txdesc)	                                      \
> +	le32_get_bits(*((__le32 *)(txdesc) + 0x00), GENMASK(23, 16))
>  #define GET_TX_DESC_PKT_OFFSET(txdesc)						\
>  	le32_get_bits(*((__le32 *)(txdesc) + 0x01), GENMASK(28, 24))
>  #define GET_TX_DESC_QSEL(txdesc)						\
> diff --git a/drivers/net/wireless/realtek/rtw88/usb.c b/drivers/net/wireless/realtek/rtw88/usb.c
> index d9e995544e405..08cd480958b6b 100644
> --- a/drivers/net/wireless/realtek/rtw88/usb.c
> +++ b/drivers/net/wireless/realtek/rtw88/usb.c
> @@ -281,6 +281,7 @@ static int rtw_usb_write_port(struct rtw_dev *rtwdev, u8 qsel, struct sk_buff *s
>  static bool rtw_usb_tx_agg_skb(struct rtw_usb *rtwusb, struct sk_buff_head *list)
>  {
>  	struct rtw_dev *rtwdev = rtwusb->rtwdev;
> +	const struct rtw_chip_info *chip = rtwdev->chip;

nit: Local variable should be sorted from longest line to shortest line,
     aka reverse xmas tree.

     As you've said you will post a v2 I feel better about pointing this out -
     it's not worth a respin in it's own right.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ