p.s.
On 4/30/21 1:38 PM, Daniel Vetter wrote:
Offtopic:
I'm also not sure why we have to use the kdev stuff here. For other random objects we need to look up we're building that functionality on that object. It means you need to keep another list_head around for that lookup, but that's really not a big cost. E.g. drm_bridge/panel work like that.
So I took a peek at the bridge/panel code and that actually seems to have an issue with removal vs lookup. It is not even just a race, it seems a lookup does not take a reference and there is nothing stopping a user from doing an unbind or rmmod causing the panel to be removed while other code which got a pointer to the panel through of_drm_find_panel() will not be prepared to deal with that pointer all of a sudden no longer being valid.
Now this would be a case of the user shooting his-self in the foot (where as connectors can actually dynamically disappear under normal circumstances), but ideally we really should do better here.
Is there a TODO list somewhere for issues like this ? Or shall I submit a patch adding a FIXME comment, or is this considered not worth the trouble of fixing it?
Regards,
Hans