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 <[email protected]>
---
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
On Wed, Jul 7, 2021 at 11:56 PM Dongliang Mu <[email protected]> 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 <[email protected]>
> ---
> 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
>
Hi,
On Wed, 7 Jul 2021 at 12:11, Dongliang Mu <[email protected]> wrote:
>
> On Wed, Jul 7, 2021 at 11:56 PM Dongliang Mu <[email protected]> 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.
>
What about "hwsim_del_edge_nl()" line 483, I think it has the same issue?
- Alex
On Thu, Jul 8, 2021 at 2:55 AM Alexander Aring <[email protected]> wrote:
>
> Hi,
>
> On Wed, 7 Jul 2021 at 12:11, Dongliang Mu <[email protected]> wrote:
> >
> > On Wed, Jul 7, 2021 at 11:56 PM Dongliang Mu <[email protected]> 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.
> >
>
> What about "hwsim_del_edge_nl()" line 483, I think it has the same issue?
Eric already submitted a patch [1] to fix this function and the patch
is already merged in the mainline.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0303b30375dff5351a79cc2c3c87dfa4fda29bed
>
> - Alex
Hi,
On Wed, 7 Jul 2021 at 11:56, Dongliang Mu <[email protected]> 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 <[email protected]>
Acked-by: Alexander Aring <[email protected]>
- Alex
Hi,
On Wed, 7 Jul 2021 at 19:15, Dongliang Mu <[email protected]> wrote:
>
> On Thu, Jul 8, 2021 at 2:55 AM Alexander Aring <[email protected]> wrote:
> >
> > Hi,
> >
> > On Wed, 7 Jul 2021 at 12:11, Dongliang Mu <[email protected]> wrote:
> > >
> > > On Wed, Jul 7, 2021 at 11:56 PM Dongliang Mu <[email protected]> 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.
> > >
> >
> > What about "hwsim_del_edge_nl()" line 483, I think it has the same issue?
>
> Eric already submitted a patch [1] to fix this function and the patch
> is already merged in the mainline.
>
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0303b30375dff5351a79cc2c3c87dfa4fda29bed
ah, yes. Thanks.
- Alex
Hello.
On 08.07.21 01:34, Alexander Aring wrote:
> Hi,
>
> On Wed, 7 Jul 2021 at 11:56, Dongliang Mu <[email protected]> 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 <[email protected]>
>
> Acked-by: Alexander Aring <[email protected]>
This patch has been applied to the wpan tree and will be
part of the next pull request to net. Thanks!
regards
Stefan Schmidt