From cd37eba7debae6a865886063fc1d14c04dde11c1 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 8 Sep 2021 09:05:31 +0200 Subject: [PATCH] 5.13-stable patches added patches: firmware-dmi-move-product_sku-info-to-the-end-of-the-modalias.patch --- queue-5.10/series | 0 ..._sku-info-to-the-end-of-the-modalias.patch | 88 +++++++++++++++++++ queue-5.13/series | 1 + queue-5.14/series | 2 + 4 files changed, 91 insertions(+) create mode 100644 queue-5.10/series create mode 100644 queue-5.13/firmware-dmi-move-product_sku-info-to-the-end-of-the-modalias.patch create mode 100644 queue-5.13/series create mode 100644 queue-5.14/series diff --git a/queue-5.10/series b/queue-5.10/series new file mode 100644 index 00000000000..e69de29bb2d diff --git a/queue-5.13/firmware-dmi-move-product_sku-info-to-the-end-of-the-modalias.patch b/queue-5.13/firmware-dmi-move-product_sku-info-to-the-end-of-the-modalias.patch new file mode 100644 index 00000000000..84f7d1af62e --- /dev/null +++ b/queue-5.13/firmware-dmi-move-product_sku-info-to-the-end-of-the-modalias.patch @@ -0,0 +1,88 @@ +From f97a2103f1a75ca70f23deadb4d96a16c4d85e7d Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Thu, 2 Sep 2021 17:28:53 +0200 +Subject: firmware: dmi: Move product_sku info to the end of the modalias + +From: Hans de Goede + +commit f97a2103f1a75ca70f23deadb4d96a16c4d85e7d upstream. + +Commit e26f023e01ef ("firmware/dmi: Include product_sku info to modalias") +added a new field to the modalias in the middle of the modalias, breaking +some existing udev/hwdb matches on the whole modalias without a wildcard +('*') in between the pvr and rvn fields. + +All modalias matches in e.g. : +https://github.com/systemd/systemd/blob/main/hwdb.d/60-sensor.hwdb +deliberately end in ':*' so that new fields can be added at *the end* of +the modalias, but adding a new field in the middle like this breaks things. + +Move the new sku field to the end of the modalias to fix some hwdb +entries no longer matching. + +The new sku field has already been put to use in 2 new hwdb entries: + + sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0A3E:* + ACCEL_LOCATION=base + + sensor:modalias:platform:HID-SENSOR-200073:dmi:*svnDell*:sku0B0B:* + ACCEL_LOCATION=base + +The wildcard use before and after the sku in these matches means that they +should keep working with the sku moved to the end. + +Note that there is a second instance of in essence the same problem, +commit f5152f4ded3c ("firmware/dmi: Report DMI Bios & EC firmware release") + +Added 2 new br and efr fields in the middle of the modalias. This too +breaks some hwdb modalias matches, but this has gone unnoticed for over +a year. So some newer hwdb modalias matches actually depend on these +fields being in the middle of the string. Moving these to the end now +would break 3 hwdb entries, while fixing 8 entries. + +Since there is no good answer for the new br and efr fields I have chosen +to leave these as is. Instead I'll submit a hwdb update to put a wildcard +at the place where these fields may or may not be present depending on the +kernel version. + +BugLink: https://github.com/systemd/systemd/issues/20550 +Link: https://github.com/systemd/systemd/pull/20562 +Fixes: e26f023e01ef ("firmware/dmi: Include product_sku info to modalias") +Cc: stable@vger.kernel.org +Cc: Kai-Chuan Hsieh +Cc: Erwan Velu +Signed-off-by: Hans de Goede +Signed-off-by: Jean Delvare +Signed-off-by: Greg Kroah-Hartman +--- + drivers/firmware/dmi-id.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/drivers/firmware/dmi-id.c ++++ b/drivers/firmware/dmi-id.c +@@ -73,6 +73,10 @@ static void ascii_filter(char *d, const + + static ssize_t get_modalias(char *buffer, size_t buffer_size) + { ++ /* ++ * Note new fields need to be added at the end to keep compatibility ++ * with udev's hwdb which does matches on "`cat dmi/id/modalias`*". ++ */ + static const struct mafield { + const char *prefix; + int field; +@@ -85,13 +89,13 @@ static ssize_t get_modalias(char *buffer + { "svn", DMI_SYS_VENDOR }, + { "pn", DMI_PRODUCT_NAME }, + { "pvr", DMI_PRODUCT_VERSION }, +- { "sku", DMI_PRODUCT_SKU }, + { "rvn", DMI_BOARD_VENDOR }, + { "rn", DMI_BOARD_NAME }, + { "rvr", DMI_BOARD_VERSION }, + { "cvn", DMI_CHASSIS_VENDOR }, + { "ct", DMI_CHASSIS_TYPE }, + { "cvr", DMI_CHASSIS_VERSION }, ++ { "sku", DMI_PRODUCT_SKU }, + { NULL, DMI_NONE } + }; + diff --git a/queue-5.13/series b/queue-5.13/series new file mode 100644 index 00000000000..a9f046b63e0 --- /dev/null +++ b/queue-5.13/series @@ -0,0 +1 @@ +firmware-dmi-move-product_sku-info-to-the-end-of-the-modalias.patch diff --git a/queue-5.14/series b/queue-5.14/series new file mode 100644 index 00000000000..c2c206fc026 --- /dev/null +++ b/queue-5.14/series @@ -0,0 +1,2 @@ +firmware-dmi-move-product_sku-info-to-the-end-of-the-modalias.patch +can-c_can-fix-null-ptr-deref-on-ioctl.patch -- 2.47.3