Re: [2.6.23-rc9 regression] commit 4f01a757 broke HAL input support

From: Anssi Hannula
Date: Fri Oct 05 2007 - 07:37:07 EST


Ben Gamari wrote:
On Thu, 2007-10-04 at 22:40 -0400, Dmitry Torokhov wrote:
4f01a757e75f2a3cab2bab89c4176498963946b9.

The change that Dmitry proposed would still require
CONFIG_SYSFS_DEPRECATED, right?

What proposed change?
The changeset you quote is already applied.

Andrey Borzenkov wrote:
Actually this specific problem was introduced by 4f01a757e75f2a3cab2bab89c4176498963946b9. This commit seems to have completely disassociated eventX from corresponding inputY

To summarize.

1. Any kernel with SYSFS_DEPRECATED unset

events are sent for /devices/...
/devices/.../eventX is direct child of /devices/.../inputY
HAL checks for parent of eventX, finds inputY and is happy

2. SYSFS_DEPRECATED=y, pre-2.6.23 kernel

events are sent for /class/...
/class/.../eventX is direct child of /class/.../inputY
HAL checks for parent of eventX, finds inputY and works

3. SYSFS_DEPRECATED=y, 2.6.23 before commit 4f01a757e75f2a3cab2bab89c4176498963946b9.

events are sent for /class/...
/class/.../eventX is *not* child of /class/.../inputY
/class/.../eventX/device points to .../inputY
HAL checks for .../device link, finds inputY and works

4. SYSFS_DEPRECATED=y, 2.6.23 after commit 4f01a757e75f2a3cab2bab89c4176498963946b9.

/class/.../eventX is *not* child of /class/.../inputY
/class/.../eventX/device points to some physical device
HAL finds inputY neither as ../inputY nor as device link and breaks

But what is worse, now the only way to find which inputY corresponds to which eventX is to scan the whole /class/input, check for device link and compare.

I am afraid that we have to bite the bullet and just accept that 2.6.23 breaks user space this way or that. Frankly fixing path_id seems to be the least evil.

I'd hate to see such breakage. IMO the sysfs structure of input devices should be made compatible with both HAL and udev, with both CONFIG_SYSFS_DEPRECATED and without it, as in 2.6.22 and before.

Is it possible to fall back to /class/input/inputX/eventY if SYSFS_DEPRECATED is set?

Hopefully.

--
Anssi Hannula
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/