Flavio Cruz, le dim. 09 févr. 2025 22:36:30 -0500, a ecrit:
> * pfinet/linux-src/net/ipv4/{tcp,udp}_ipv4.c: mark lookup functions as
>   extern since they are used in another module (icmp.c) and shouldn't be
>   removed.

> diff --git a/pfinet/linux-src/net/ipv4/tcp_ipv4.c 
> b/pfinet/linux-src/net/ipv4/tcp_ipv4.c
> index 8a5f7175..e67137e4 100644
> --- a/pfinet/linux-src/net/ipv4/tcp_ipv4.c
> +++ b/pfinet/linux-src/net/ipv4/tcp_ipv4.c
> @@ -448,7 +448,7 @@ hit:
>       return sk;
>  }
>  
> -__inline__ struct sock *tcp_v4_lookup(u32 saddr, u16 sport, u32 daddr, u16 
> dport, int dif)
> +extern __inline__ struct sock *tcp_v4_lookup(u32 saddr, u16 sport, u32 
> daddr, u16 dport, int dif)
>  {
>       return __tcp_v4_lookup(0, saddr, sport, daddr, dport, dif);
>  }

I don't remember the details of what we currently have, but iirc in
some compilation cases, setting extern inline on a function tells the
compiler that this is a possible inline but if the compiler prefers not
to inline, it can just emit a reference, and a definition is available
somewhere else. Thus why we have FOO_EI in variouis headers headers.

It'd probably be simpler to just drop the __inline__ keyword, it's not
that performance sensitive?

> diff --git a/pfinet/linux-src/net/ipv4/udp.c b/pfinet/linux-src/net/ipv4/udp.c
> index 36dc801a..b9fa8c63 100644
> --- a/pfinet/linux-src/net/ipv4/udp.c
> +++ b/pfinet/linux-src/net/ipv4/udp.c
> @@ -272,7 +272,7 @@ struct sock *udp_v4_lookup_longway(u32 saddr, u16 sport, 
> u32 daddr, u16 dport, i
>       return result;
>  }
>  
> -__inline__ struct sock *udp_v4_lookup(u32 saddr, u16 sport, u32 daddr, u16 
> dport, int dif)
> +extern __inline__ struct sock *udp_v4_lookup(u32 saddr, u16 sport, u32 
> daddr, u16 dport, int dif)
>  {
>       struct sock *sk;
>  

Reply via email to