Re: [PATCH] rtlwifi: use tasklet_setup to initialize rx_work_tasklet
From: Kalle Valo <hidden>
Date: 2021-01-27 15:42:01
Emil Renner Berthing [off-list ref] writes:
On Wed, 27 Jan 2021 at 16:20, Kalle Valo [off-list ref] wrote:quoted
Willem de Bruijn [off-list ref] writes:quoted
On Wed, Jan 27, 2021 at 5:23 AM Emil Renner Berthing [off-list ref] wrote:quoted
In commit d3ccc14dfe95 most of the tasklets in this driver was updated to the new API. However for the rx_work_tasklet only the type of the callback was changed from void _rtl_rx_work(unsigned long data) to void _rtl_rx_work(struct tasklet_struct *t). The initialization of rx_work_tasklet was still open-coded and the function pointer just cast into the old type, and hence nothing sets rx_work_tasklet.use_callback = true and the callback was still called as t->func(t->data); with uninitialized/zero t->data. Commit 6b8c7574a5f8 changed the casting of _rtl_rx_work a bit and initialized t->data to a pointer to the tasklet cast to an unsigned long. This way calling t->func(t->data) might actually work through all the casting, but it still doesn't update the code to use the new tasklet API. Let's use the new tasklet_setup to initialize rx_work_tasklet properly and set rx_work_tasklet.use_callback = true so that the callback is called as t->callback(t); without all the casting. Fixes: 6b8c7574a5f8 ("rtlwifi: fix build warning") Fixes: d3ccc14dfe95 ("rtlwifi/rtw88: convert tasklets to use new tasklet_setup() API") Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>Since the current code works, this could target net-nextThis should go to wireless-drivers-next, not net-next.quoted
without Fixes tags.Correct, no need for Fixes tag as there's no bug to fix. This is only cleanup AFAICS.
Forgot to mention that I can remove the Fixes tags during commit, so no need to resend just because of those.
I can definitely see how you can reasonably disagree, but I would not be comfortable having code that only works because the calling conventions of all relevant architectures happen to put the first unsigned long argument and the first pointer argument in the same register.
If there's a bug this patch fixes please explain it clearly in the commit log. But as I read it (though I admit very quickly) I understood this is just cleanup. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches