On Fri, Oct 03, 2025 at 01:19:33AM +0200, Arnd Bergmann wrote:
On Thu, Oct 2, 2025, at 15:53, Mathieu Desnoyers wrote:
quoted
On 2025-10-02 04:24, Greg KH wrote:
quoted
On Thu, Oct 02, 2025 at 05:12:01PM +0900, Byungchul Park wrote:
quoted
llist_head and llist_node can be used by some other header files. For
example, dept for tracking dependencies uses llist in its header. To
avoid header dependency, move them to types.h.
If you need llist in your code, then include llist.h. Don't force all
types.h users to do so as there is not a dependency in types.h for
llist.h.
This patch shouldn't be needed as you are hiding "header dependency" for
other files.
I agree that moving this into a catch-all types.h is not what we should
aim for.
However, it's a good practice to move the type declarations to a
separate header file, so code that only cares about type and not
implementation of static inline functions can include just that.
Perhaps we can move struct llist_head and struct llist_node to a new
include/linux/llist_types.h instead ?
We have around a dozen types of linked lists, and the most common
two of them are currently defined in linux/types.h, while the
rest of them are each defined in the same header as the inteface
definition.
Duplicating each of those headers by splitting out the trivial
type definition doesn't quite seem right either, as we'd end
up with even more headers that have to be included indirectly
in each compilation unit.
Maybe a shared linux/list_types.h would work, to specifically
I found a way to resolve my issue, but I thought it's good idea
regardless of my issue and took a quick look. However, it seems like
there's an overwhelming amount of work since it might require to replace
all the existing include <linux/types.h> for use of list things with the
new one :-).
Byungchul
contain all the list_head variants that are meant to be included
in larger structures?
Arnd