Hi Alexander,
> > +
> > +#include <linux/kernel.h>
> > +#include <net/cfg802154.h>
> > +#include <net/af_ieee802154.h>
> > +
> > +/* Checks whether a device address matches one from the PAN list.
> > + * This helper is meant to be used only during PAN management, when we
> > expect
> > + * extended addresses to be used.
> > + */
> > +static bool cfg802154_device_in_pan(struct ieee802154_pan_device *pan_dev,
> > + struct ieee802154_addr *ext_dev)
> > +{
> > + if (!pan_dev || !ext_dev)
> > + return false;
> > +
> > + if (ext_dev->mode == IEEE802154_ADDR_SHORT)
> > + return false;
> > +
> > + switch (ext_dev->mode) {
> > + case IEEE802154_ADDR_SHORT:
> > + return pan_dev->short_addr == ext_dev->short_addr;
>
> This is dead code now, it will never be reached, it's checked above
> (Or I don't see it)? I want to help you here. What exactly do you try
> to reach here again?
It's a left over. All association/disassociation operation so far which
need these checks are operated using extended addressing (from the
spec). I will simplify further this helper.
> > +bool cfg802154_device_is_parent(struct wpan_dev *wpan_dev,
> > + struct ieee802154_addr *target)
> > +{
> > + lockdep_assert_held(&wpan_dev->association_lock);
> > +
> > + if (cfg802154_device_in_pan(wpan_dev->parent, target))
> > + return true;
> > +
> > + return false;
>
> return cfg802154_device_in_pan(...); Why isn't checkpatch warning about that?
checkpatch does not care I guess, but I can definitely simplify this
return path as well, you're right.
Thanks,
Miquèl