Message ID | E1ii59z-0003Na-Rb@rmk-PC.armlinux.org.uk |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net,v2] mod_devicetable: fix PHY module format | expand |
On 12/19/2019 3:24 PM, Russell King wrote: > When a PHY is probed, if the top bit is set, we end up requesting a > module with the string "mdio:-10101110000000100101000101010001" - > the top bit is printed to a signed -1 value. This leads to the module > not being loaded. > > Fix the module format string and the macro generating the values for > it to ensure that we only print unsigned types and the top bit is > always 0/1. We correctly end up with > "mdio:10101110000000100101000101010001". > > Fixes: 8626d3b43280 ("phylib: Support phy module autoloading") > Reviewed-by: Andrew Lunn <andrew@lunn.ch> > Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
From: Russell King <rmk+kernel@armlinux.org.uk> Date: Thu, 19 Dec 2019 23:24:47 +0000 > When a PHY is probed, if the top bit is set, we end up requesting a > module with the string "mdio:-10101110000000100101000101010001" - > the top bit is printed to a signed -1 value. This leads to the module > not being loaded. > > Fix the module format string and the macro generating the values for > it to ensure that we only print unsigned types and the top bit is > always 0/1. We correctly end up with > "mdio:10101110000000100101000101010001". > > Fixes: 8626d3b43280 ("phylib: Support phy module autoloading") > Reviewed-by: Andrew Lunn <andrew@lunn.ch> > Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Applied and queued up for -stable.
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 5714fd35a83c..e3596db077dc 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -587,9 +587,9 @@ struct platform_device_id { #define MDIO_NAME_SIZE 32 #define MDIO_MODULE_PREFIX "mdio:" -#define MDIO_ID_FMT "%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d" +#define MDIO_ID_FMT "%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u" #define MDIO_ID_ARGS(_id) \ - (_id)>>31, ((_id)>>30) & 1, ((_id)>>29) & 1, ((_id)>>28) & 1, \ + ((_id)>>31) & 1, ((_id)>>30) & 1, ((_id)>>29) & 1, ((_id)>>28) & 1, \ ((_id)>>27) & 1, ((_id)>>26) & 1, ((_id)>>25) & 1, ((_id)>>24) & 1, \ ((_id)>>23) & 1, ((_id)>>22) & 1, ((_id)>>21) & 1, ((_id)>>20) & 1, \ ((_id)>>19) & 1, ((_id)>>18) & 1, ((_id)>>17) & 1, ((_id)>>16) & 1, \