Re: [PATCH] wifi: rsi: Fix types to appease CFI

Jeff Johnson <[email protected]> Sun, 2 Aug 2026 07:30:53 -0700
Newsgroups org.kernel.vger.phone-devel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-wireless
Message-ID <[email protected]>
On 8/2/2026 5:22 AM, Stefan Hansson wrote:
> Avoids errors like:
> 
>     CFI failure at kthread+0x124/0x1cc (target: rsi_coex_scheduler_thread+0x0/0x1b4 [redpine_91x]; expected type: 0x89fb613d)
> 
> As seen in the aforementioned error this was tested using the downstream
> redpine_91x driver found in the Librem 5's downstream source tree.
> However, it appears that this driver is a modified version of the rsi
> driver found in mainline Linux and as such I decided to port the changes
> here too.
> 
> Signed-off-by: Stefan Hansson <[email protected]>

Having fixed a ton of these issues in the Qualcomm Android downstream driver I
was going to give my R-B, but I ran this through my ath.git patch acceptance
process and it flagged some issues, starting with:

WARNING:FROM_SIGN_OFF_MISMATCH: From:/Signed-off-by: email address mismatch:
'From: Stefan Hansson <[email protected]>' != 'Signed-off-by: Stefan
Hansson <[email protected]>'

There are also kernel-doc issues noted below

> @@ -246,12 +246,13 @@ EXPORT_SYMBOL_GPL(rsi_read_pkt);
>  /**
>   * rsi_tx_scheduler_thread() - This function is a kernel thread to send the
>   *			       packets to the device.
> - * @common: Pointer to the driver private structure.
> + * @data: Pointer to the driver private structure.
>   *
>   * Return: None.

Return: 0

>   */
> -static void rsi_tx_scheduler_thread(struct rsi_common *common)
> +static int rsi_tx_scheduler_thread(void *data)
>  {
> +	struct rsi_common *common = data;
>  	struct rsi_hw *adapter = common->priv;
>  	u32 timeout = EVENT_WAIT_FOREVER;
>  
...
> diff --git a/drivers/net/wireless/rsi/rsi_91x_usb_ops.c b/drivers/net/wireless/rsi/rsi_91x_usb_ops.c
> index 25c2b232394a..513d2fdfb510 100644
> --- a/drivers/net/wireless/rsi/rsi_91x_usb_ops.c
> +++ b/drivers/net/wireless/rsi/rsi_91x_usb_ops.c
> @@ -25,8 +25,9 @@

above here update the documentation: s/common/data/

Warning: drivers/net/wireless/rsi/rsi_91x_usb_ops.c:28 function parameter
'data' not described in 'rsi_usb_rx_thread'
Warning: drivers/net/wireless/rsi/rsi_91x_usb_ops.c:28 Excess function
parameter 'common' description in 'rsi_usb_rx_thread'

>   *
>   * Return: None.

Return: 0

>   */
> -void rsi_usb_rx_thread(struct rsi_common *common)
> +int rsi_usb_rx_thread(void *data)
>  {
> +	struct rsi_common *common = data;
>  	struct rsi_hw *adapter = common->priv;
>  	struct rsi_91x_usbdev *dev = adapter->rsi_dev;
>  	int status;