> -----Original Message----- > From: Kalle Valo <kvalo@xxxxxxxxxx> > Sent: Wednesday, June 8, 2022 3:45 PM > To: Ping-Ke Shih <pkshih@xxxxxxxxxxx> > Cc: Larry Finger <Larry.Finger@xxxxxxxxxxxx>; Nathan Chancellor <nathan@xxxxxxxxxx>; Johannes Berg > <johannes@xxxxxxxxxxxxxxxx>; linux-wireless@xxxxxxxxxxxxxxx > Subject: Re: [PATCH v3 4/4] rtw88: Fix Sparse warning for rtw8821c_hw_spec > > Ping-Ke Shih <pkshih@xxxxxxxxxxx> writes: > > > > > The ch_param[3] is only used by 8821c, so it doesn't affect other devices. > > I will prepare a patch to fix it. > > But why didn't the compiler catch this? Is there some evil cast > somewhere which removes the const? We should fix that as well (in a > separate patch). > This is because we assign a const to .driver_data that is non-const kernel_ulong_t: static const struct pci_device_id rtw_8821ce_id_table[] = { { .driver_data = (kernel_ulong_t)&rtw8821c_hw_spec }, When casting it back in pci_probe(), we need to add 'const' after Larry's patches: rtwdev->chip = (struct rtw_chip_info *)id->driver_data; I will prepare another patch to fix that. Ping-Ke