Le 11/05/2024 à 22:31, Simon Horman a écrit :
On Sat, May 11, 2024 at 06:32:38PM +0200, Christophe JAILLET wrote:
lib80211_register_crypto_ops() and lib80211_unregister_crypto_ops() don't
modify their "struct lib80211_crypto_ops *ops" argument. So, it can be
declared as const.
Doing so, some adjustments are needed to also constify some date in
"struct lib80211_crypt_data", "struct lib80211_crypto_alg" and the
return value of lib80211_get_crypto_ops().
Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
---
Compile tested only.
Hi Christophe,
Unfortunately allmodconfig W=1 build on x86_64 with Clang says:
.../libipw_wx.c:587:6: error: assigning to 'struct lib80211_crypto_ops *' from 'const struct lib80211_crypto_ops *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
587 | ops = lib80211_get_crypto_ops(alg);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.../libipw_wx.c:590:7: error: assigning to 'struct lib80211_crypto_ops *' from 'const struct lib80211_crypto_ops *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers]
590 | ops = lib80211_get_crypto_ops(alg);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Hi,
I'll dig more tomorrow, but I don't see this error (with gcc), even with
W=1.
The following part of the patch is here to avoid the exact compilation
error that you see.
Strange.
CJ
diff --git a/drivers/staging/rtl8192e/rtllib_wx.c
b/drivers/staging/rtl8192e/rtllib_wx.c
index fbd4ec824084..c730d921463d 100644
--- a/drivers/staging/rtl8192e/rtllib_wx.c
+++ b/drivers/staging/rtl8192e/rtllib_wx.c
@@ -474,7 +474,7 @@ int rtllib_wx_set_encode_ext(struct rtllib_device *ieee,
int i, idx;
int group_key = 0;
const char *alg, *module;
- struct lib80211_crypto_ops *ops;
+ const struct lib80211_crypto_ops *ops;
struct lib80211_crypt_data **crypt;
struct rtllib_security sec = {