On Monday, August 24, 2015 03:26:13 PM Wolfram Sang wrote:
On Mon, Aug 24, 2015 at 01:52:02PM +0300, Jarkko Nikula wrote:
Commit 70762abb9f89 ("i2c: Use stable dev_name for ACPI enumerated I2C slaves") broke the lm-sensors which relies on I2C hwmon slave devices under /sys/bus/i2c/devices/ to be named as "x-00yz". However if those hwmon devices are ACPI 5 enumerated their name became "i2c-INTABCD:ij" and sysfs code in lm-sensors does not find them anymore:
lib/sysfs.c:665: if ((!subsys || !strcmp(subsys, "i2c")) && sscanf(dev_name, "%hd-%x", &entry.chip.bus.nr, &entry.chip.addr) == 2) {
This patch fixes this by reverting back the old device naming in i2c-core but at the same avoids regression to ALSA SoC drivers that depend on stable device binding.
This way we fix some userspace by going back. However, this name change was effective for 18 months, so enough time for some other userspace to adapt. We would break the latter by reverting.
Right.
Generally, reverts of such things need to be made relatively quickly.
I tend to create the symlinks to prevent any further breakage. I am open for other suggestions, though. This ugly situation has surely happened before somewhere somewhen in the kernel :/
It happens on a regular basis.
In this particular case it looks like we need a mechanism to use the old naming scheme for hwmon and the new one for everything else or something similar. I'm afraid I am not familiar enough with the i2c core to suggest anything specific ATM, though.
Thanks, Rafael