net: mac802154: Avoid displaying misleading debug information
authorMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 5 Sep 2022 20:27:24 +0000 (22:27 +0200)
committerStefan Schmidt <stefan@datenfreihafen.org>
Wed, 12 Oct 2022 11:04:51 +0000 (13:04 +0200)
With DEBUG defined, any frame received will see its MHR fields (fc and
addresses, mainly) being printed in the kernel log buffer,
unconditionally. In most cases this is fine, but in some specific cases
(like Acknowledgment frames, where both the source and destination
addressing fields are omitted), it displays garbage which is
misleading.

Only print the addressing fields when they are present, which clarifies
the logs.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/r/20220905202724.1322046-1-miquel.raynal@bootlin.com
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
net/mac802154/rx.c

index 6640bd2373523425f23ba79cb1f3fd2692878986..d1f7b8df41fe3d28357780fa71f8beb5b6d8bf95 100644 (file)
@@ -114,8 +114,10 @@ fail:
 static void
 ieee802154_print_addr(const char *name, const struct ieee802154_addr *addr)
 {
-       if (addr->mode == IEEE802154_ADDR_NONE)
+       if (addr->mode == IEEE802154_ADDR_NONE) {
                pr_debug("%s not present\n", name);
+               return;
+       }
 
        pr_debug("%s PAN ID: %04x\n", name, le16_to_cpu(addr->pan_id));
        if (addr->mode == IEEE802154_ADDR_SHORT) {