Messages in this thread | | | Subject | bus_id collisions | From | Benjamin Herrenschmidt <> | Date | Tue, 21 Nov 2006 15:02:16 +1100 |
| |
Hi Greg !
It occurs to me (after some trouble I had with custom bus types) that this comment is incorrect in device.h, in the definition of struct device :
char bus_id[BUS_ID_SIZE]; /* position on parent bus */
As the bus_id needs to be unique for a given bus_type, not only under a given parent, due to the symlinks in /sys/bus/<bus_type>/.
This has caused me some trouble with of_platform devices, which are sort-of platform devices but linked to the Open Firmware device-tree, as I generate their names based on the nodes in the tree which need not be unique as long as they are unique under a given parent.
I've worked around it, but I though the comment might need to be clarified.
Also, I don't suppose you have any plan to move away from the bus_id being a fixed size array inside struct device ? I would very much like to be able to have larger names ... Among others, in order to handle the above problem, I tend to include the fully translated 64 bits address of the device in the name :-) (Hopefully, it's generally smaller and I don't have leading zero's but still, I have little room left for the device name which is annoying).
Cheers, Ben.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |