On Tue, 2024-01-23 at 15:05 -0700, Jonathan Corbet wrote: > > So I feel like I'm missing something; the problem with Sphinx and > namespacing is separate from whether kernel-doc recognizes "-functions"; > I don't think that taking out this support will make the other problem > any harder to solve. Do you see something I'm not? Well, I was thinking that today, in the rst files, we use .. kernel-doc:: include/net/cfg80211.h :functions: cfg80211_rx_assoc_resp (for example). This clearly references the *function* cfg80211_rx_assoc_resp(), at least it makes that intent clear. We also had a *struct* called cfg80211_rx_assoc_resp, until we removed it recently because of the sphinx namespacing issues. Now if we change the reference to the function to be just .. kernel-doc:: include/net/cfg80211.h :identifiers: cfg80211_rx_assoc_resp then how do you know that it's actually referencing the function vs. the struct? I mean, OK, today it can only reference the single "thing" (**) that sphinx accepts ... but hoping that some day the sphinx namespacing issue will be solved, we'd need a way to actually reference the different namespaces from the rst files, no? So it seemed to me that just unconditionally referencing an "identifier" makes that harder, not easier? We have 'struct class' for example, and use .. kernel-doc:: include/linux/device/class.h :identifiers: class to refer to it. At least you know it's not a function, though if you also had an 'enum class' you'd not be able to figure it out. (**) Also, I think a struct or enum name isn't actually called an identifier in C? So maybe that's a bad term regardless of the namespacing. But I guess even if I'm right (and I'm not really sure) then that's too late now. johannes