Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
From 326947e7b24ea4615e2971fc7cd48e6c1a9245df Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Schiffer <matthias.schiffer@ew.tq-group.com>
|
||||
Date: Wed, 7 Aug 2024 12:01:24 +0200
|
||||
Subject: [PATCH] udev-builtin-net_id: add NAMING_DEVICETREE_PORT_ALIASES to
|
||||
check of_node of netdevs before their parents
|
||||
|
||||
The net_id builtin only checked the of_node of a netdev's parent device,
|
||||
not that of the netdev itself. While it is common that netdevs don't have
|
||||
an OF node assigned themselves, as they are derived from some parent
|
||||
device, this is not always the case. In particular when a single
|
||||
controller provides multiple ports that can be referenced indiviually in
|
||||
the Device Tree (both for aliases/MAC address assignment and phandle
|
||||
references), the correct of_node will be that of the netdev itself, not
|
||||
that of the parent, so it needs to be checked, too.
|
||||
|
||||
A new naming scheme flag NAMING_DEVICETREE_PORT_ALIASES is added to
|
||||
allow selecting the new behavior.
|
||||
|
||||
Upstream-Status: Backport [https://github.com/systemd/systemd/commit/24c2e04e9a3b53bc8a57ac4a7a89d8da8e4feb72]
|
||||
|
||||
The new naming scheme flag is not used by default in the backported
|
||||
patch; it must be enabled using the extra-net-naming-schemes build option.
|
||||
---
|
||||
diff --git a/src/shared/netif-naming-scheme.h b/src/shared/netif-naming-scheme.h
|
||||
index 3f7be08830..904a3b75ff 100644
|
||||
--- a/src/shared/netif-naming-scheme.h
|
||||
+++ b/src/shared/netif-naming-scheme.h
|
||||
@@ -38,9 +38,10 @@ typedef enum NamingSchemeFlags {
|
||||
NAMING_XEN_VIF = 1 << 13, /* Generate names for Xen netfront devices */
|
||||
NAMING_BRIDGE_MULTIFUNCTION_SLOT = 1 << 14, /* Use PCI hotplug slot information associated with bridge, but only if PCI device is multifunction.
|
||||
* This is disabled since v255, as it seems not to work at least for some setups. See issue #28929. */
|
||||
- NAMING_DEVICETREE_ALIASES = 1 << 15, /* Generate names from devicetree aliases */
|
||||
+ NAMING_DEVICETREE_ALIASES = 1 << 15, /* Generate names from devicetree aliases of a netdev's parent's OF node */
|
||||
NAMING_USB_HOST = 1 << 16, /* Generate names for usb host */
|
||||
NAMING_SR_IOV_R = 1 << 17, /* Use "r" suffix for SR-IOV VF representors */
|
||||
+ NAMING_DEVICETREE_PORT_ALIASES = 1 << 19, /* Include aliases of OF nodes of a netdev itself, not just its parent. See PR #33958. */
|
||||
|
||||
/* And now the masks that combine the features above */
|
||||
NAMING_V238 = 0,
|
||||
diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
|
||||
index 91b40088f4..faf7dd4940 100644
|
||||
--- a/src/udev/udev-builtin-net_id.c
|
||||
+++ b/src/udev/udev-builtin-net_id.c
|
||||
@@ -781,7 +781,6 @@ static int names_platform(sd_device *dev, const char *prefix, bool test) {
|
||||
static int names_devicetree(sd_device *dev, const char *prefix, bool test) {
|
||||
_cleanup_(sd_device_unrefp) sd_device *aliases_dev = NULL, *ofnode_dev = NULL, *devicetree_dev = NULL;
|
||||
const char *ofnode_path, *ofnode_syspath, *devicetree_syspath;
|
||||
- sd_device *parent;
|
||||
int r;
|
||||
|
||||
assert(dev);
|
||||
@@ -794,14 +793,24 @@ static int names_devicetree(sd_device *dev, const char *prefix, bool test) {
|
||||
if (!streq(prefix, "en"))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
- /* check if our direct parent has an of_node */
|
||||
- r = sd_device_get_parent(dev, &parent);
|
||||
- if (r < 0)
|
||||
- return log_device_debug_errno(dev, r, "Failed to get parent device: %m");
|
||||
+ /* check if the device itself has an of_node */
|
||||
+ if (naming_scheme_has(NAMING_DEVICETREE_PORT_ALIASES)) {
|
||||
+ r = sd_device_new_child(&ofnode_dev, dev, "of_node");
|
||||
+ if (r < 0)
|
||||
+ log_device_debug_errno(dev, r, "Failed to get device of_node, ignoring: %m");
|
||||
+ }
|
||||
+ if (!ofnode_dev) {
|
||||
+ sd_device *parent;
|
||||
|
||||
- r = sd_device_new_child(&ofnode_dev, parent, "of_node");
|
||||
- if (r < 0)
|
||||
- return log_device_debug_errno(parent, r, "Failed to get 'of_node' child device: %m");
|
||||
+ /* check if our direct parent has an of_node as a fallback */
|
||||
+ r = sd_device_get_parent(dev, &parent);
|
||||
+ if (r < 0)
|
||||
+ return log_device_debug_errno(dev, r, "Failed to get parent device: %m");
|
||||
+
|
||||
+ r = sd_device_new_child(&ofnode_dev, parent, "of_node");
|
||||
+ if (r < 0)
|
||||
+ return log_device_debug_errno(parent, r, "Failed to get device of_node: %m");
|
||||
+ }
|
||||
|
||||
r = sd_device_get_syspath(ofnode_dev, &ofnode_syspath);
|
||||
if (r < 0)
|
||||
@@ -0,0 +1,9 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# Copyright (c) 2024 TQ-Systems GmbH <oss@ew.tq-group.com>, D-82229 Seefeld, Germany.
|
||||
# Author: Matthias Schiffer
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
|
||||
|
||||
SRC_URI += "file://0001-udev-builtin-net_id-add-NAMING_DEVICETREE_PORT_ALIAS.patch"
|
||||
EXTRA_OEMESON += "-Dextra-net-naming-schemes=latest=v255+devicetree-port-aliases"
|
||||
Reference in New Issue
Block a user