From a608cdd7903505217529317c04b5b58cb7e25081 Mon Sep 17 00:00:00 2001 From: Giulio Benetti Date: Wed, 28 Dec 2022 21:06:43 +0100 Subject: [PATCH] cfg80211.c: fix build failure with Linux 5.19 and 6.1 Starting from Linux 5.19 stop_ap() requires unsigned int link_id as parameter. Then from Linux 6.1 on lot of other cfg80211 APIs require int link_id to deal with MLO, so let's add that parameter too. [Upstream status: https://github.com/embeddedTS/wilc3000-external-module/pull/2] Signed-off-by: Giulio Benetti --- cfg80211.c | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/cfg80211.c b/cfg80211.c index 41edd02..57c777d 100644 --- a/cfg80211.c +++ b/cfg80211.c @@ -674,8 +674,12 @@ static int wilc_wfi_cfg_copy_wpa_info(struct wilc_wfi_key *key_info, return 0; } -static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, - bool pairwise, const u8 *mac_addr, struct key_params *params) +static int add_key(struct wiphy *wiphy, struct net_device *netdev, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)) + int link_id, +#endif + u8 key_index, bool pairwise, const u8 *mac_addr, + struct key_params *params) { int ret = 0, keylen = params->key_len, seqlen = params->seq_len; @@ -792,6 +796,9 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, } static int del_key(struct wiphy *wiphy, struct net_device *netdev, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)) + int link_id, +#endif u8 key_index, bool pairwise, const u8 *mac_addr) @@ -833,9 +840,13 @@ static int del_key(struct wiphy *wiphy, struct net_device *netdev, return ret; } -static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, - bool pairwise, const u8 *mac_addr, void *cookie, - void (*callback)(void *cookie, struct key_params *)) +static int get_key(struct wiphy *wiphy, struct net_device *netdev, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)) + int link_id, +#endif + u8 key_index, bool pairwise, const u8 *mac_addr, + void *cookie, void (*callback)(void *cookie, + struct key_params *)) { struct wilc_vif *vif = netdev_priv(netdev); struct wilc_priv *priv = &vif->priv; @@ -877,12 +888,18 @@ static int get_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, /* wiphy_new() will WARN if not present*/ static int set_default_key(struct wiphy *wiphy, struct net_device *netdev, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)) + int link_id, +#endif u8 key_index, bool unicast, bool multicast) { return 0; } static int set_default_mgmt_key (struct wiphy *wiphy,struct net_device *netdev, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)) + int link_id, +#endif u8 key_index) { return 0; @@ -1814,7 +1831,13 @@ static int change_beacon(struct wiphy *wiphy, struct net_device *dev, return wilc_add_beacon(vif, 0, 0, beacon); } -static int stop_ap(struct wiphy *wiphy, struct net_device *dev) +static int stop_ap(struct wiphy *wiphy, struct net_device *dev +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,19,0)) + , unsigned int link_id +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(6,1,0)) + , int link_id +#endif + ) { int ret; struct wilc_vif *vif = netdev_priv(dev); -- 2.34.1