]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: can: Fix CAN initialization
authorClemens Gruber <clemens.gruber@pqgruber.com>
Fri, 21 Aug 2020 14:03:23 +0000 (16:03 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 24 Aug 2020 07:33:25 +0000 (09:33 +0200)
When introducing CAN-FD support, the .can_fd_mode was not initalized
with -1 and due to cm.mask containing the CAN_CTRLMODE_FD bit, it was
not ignored when FDMode was not configured but instead disabled.
The same thing happened when listen-only mode support was introduced.

On chips that do not support these features, this lead to an error:
can0: Failed to configure CAN link: Operation not supported

Fix it by intializing all the CAN related tristate variables
(.can_listen_only, .can_fd_mode and .can_non_iso) to -1.

src/network/networkd-network.c

index d34155b19f4c3e1e35652c66d1d7717f8d4bb969..97f5551ee53f971b598451bdf7f2430a182a4434 100644 (file)
@@ -483,6 +483,9 @@ int network_load_one(Manager *manager, OrderedHashmap **networks, const char *fi
                 .keep_configuration = _KEEP_CONFIGURATION_INVALID,
                 .can_triple_sampling = -1,
                 .can_termination = -1,
+                .can_listen_only = -1,
+                .can_fd_mode = -1,
+                .can_non_iso = -1,
                 .ip_service_type = -1,
         };