diff mbox series

ieee802154: hwsim: fix GPF in hwsim_new_edge_nl

Message ID 20210707155633.1486603-1-mudongliangabcd@gmail.com
State New
Headers show
Series ieee802154: hwsim: fix GPF in hwsim_new_edge_nl | expand

Commit Message

Dongliang Mu July 7, 2021, 3:56 p.m. UTC
Both MAC802154_HWSIM_ATTR_RADIO_ID and MAC802154_HWSIM_ATTR_RADIO_EDGE
must be present to fix GPF.

Fixes: f25da51fdc38 ("ieee802154: hwsim: add replacement for fakelb")
Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
---
 drivers/net/ieee802154/mac802154_hwsim.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Dongliang Mu July 7, 2021, 4:10 p.m. UTC | #1
On Wed, Jul 7, 2021 at 11:56 PM Dongliang Mu <mudongliangabcd@gmail.com> wrote:
>
> Both MAC802154_HWSIM_ATTR_RADIO_ID and MAC802154_HWSIM_ATTR_RADIO_EDGE
> must be present to fix GPF.

I double-check the whole file, and there is only one similar issue
left in Line 421.

 mac802154_hwsim.c      187 if (!info->attrs[MAC802154_HWSIM_ATTR_RADIO_ID])

mac802154_hwsim.c      299 if (!info->attrs[MAC802154_HWSIM_ATTR_RADIO_ID])

mac802154_hwsim.c      421 if (!info->attrs[MAC802154_HWSIM_ATTR_RADIO_ID] &&

mac802154_hwsim.c      483 if (!info->attrs[MAC802154_HWSIM_ATTR_RADIO_ID] ||

mac802154_hwsim.c      531 if (!info->attrs[MAC802154_HWSIM_ATTR_RADIO_ID]  ||

mac80211_hwsim.c      3575 if (!info->attrs[HWSIM_ATTR_ADDR_TRANSMITTER] ||

mac80211_hwsim.c      3663 if (!info->attrs[HWSIM_ATTR_ADDR_RECEIVER] ||

mac80211_hwsim.c      3982 if (!info->attrs[HWSIM_ATTR_RADIO_ID])

In addition, I check this pattern in the whole source code, it seems
if statements with "&&" in other files are correct. For example,

        if (!info->attrs[NFC_ATTR_DEVICE_INDEX] ||
            (!info->attrs[NFC_ATTR_LLC_PARAM_LTO] &&
             !info->attrs[NFC_ATTR_LLC_PARAM_RW] &&
             !info->attrs[NFC_ATTR_LLC_PARAM_MIUX]))
                return -EINVAL;

>
> Fixes: f25da51fdc38 ("ieee802154: hwsim: add replacement for fakelb")
> Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>
> ---
>  drivers/net/ieee802154/mac802154_hwsim.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ieee802154/mac802154_hwsim.c b/drivers/net/ieee802154/mac802154_hwsim.c
> index cae52bfb871e..8caa61ec718f 100644
> --- a/drivers/net/ieee802154/mac802154_hwsim.c
> +++ b/drivers/net/ieee802154/mac802154_hwsim.c
> @@ -418,7 +418,7 @@ static int hwsim_new_edge_nl(struct sk_buff *msg, struct genl_info *info)
>         struct hwsim_edge *e;
>         u32 v0, v1;
>
> -       if (!info->attrs[MAC802154_HWSIM_ATTR_RADIO_ID] &&
> +       if (!info->attrs[MAC802154_HWSIM_ATTR_RADIO_ID] ||
>             !info->attrs[MAC802154_HWSIM_ATTR_RADIO_EDGE])
>                 return -EINVAL;
>
> --
> 2.25.1
>
Stefan Schmidt July 8, 2021, 7:40 a.m. UTC | #2
Hello.

On 08.07.21 01:34, Alexander Aring wrote:
> Hi,

> 

> On Wed, 7 Jul 2021 at 11:56, Dongliang Mu <mudongliangabcd@gmail.com> wrote:

>>

>> Both MAC802154_HWSIM_ATTR_RADIO_ID and MAC802154_HWSIM_ATTR_RADIO_EDGE

>> must be present to fix GPF.

>>

>> Fixes: f25da51fdc38 ("ieee802154: hwsim: add replacement for fakelb")

>> Signed-off-by: Dongliang Mu <mudongliangabcd@gmail.com>

> 

> Acked-by: Alexander Aring <aahringo@redhat.com>


This patch has been applied to the wpan tree and will be
part of the next pull request to net. Thanks!

regards
Stefan Schmidt
diff mbox series

Patch

diff --git a/drivers/net/ieee802154/mac802154_hwsim.c b/drivers/net/ieee802154/mac802154_hwsim.c
index cae52bfb871e..8caa61ec718f 100644
--- a/drivers/net/ieee802154/mac802154_hwsim.c
+++ b/drivers/net/ieee802154/mac802154_hwsim.c
@@ -418,7 +418,7 @@  static int hwsim_new_edge_nl(struct sk_buff *msg, struct genl_info *info)
 	struct hwsim_edge *e;
 	u32 v0, v1;
 
-	if (!info->attrs[MAC802154_HWSIM_ATTR_RADIO_ID] &&
+	if (!info->attrs[MAC802154_HWSIM_ATTR_RADIO_ID] ||
 	    !info->attrs[MAC802154_HWSIM_ATTR_RADIO_EDGE])
 		return -EINVAL;