This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Tapset porting to 2.6.38
- From: David Smith <dsmith at redhat dot com>
- To: "Turgis, Frederic" <f-turgis at ti dot com>
- Cc: "systemtap at sourceware dot org" <systemtap at sourceware dot org>
- Date: Mon, 14 Mar 2011 16:05:06 -0500
- Subject: Re: Tapset porting to 2.6.38
- References: <13872098A06B02418CF379A158C0F1460160C71F68@dnce02.ent.ti.com>
On 03/14/2011 11:06 AM, Turgis, Frederic wrote:
> Hi,
>
> I recently ran the testsuite on Linaro kernel (2.6.38 on ARM dual core cortex A9)
> and found 1 issue coming from 2.6.38 kernel changes. I checked this is
not in latest
> snapshot, I don't seem to find it in bug list so here it is in case
nobody has already
> seen it:
>
> - 2.6.38-rc1 has broken tapset/ip.stp by moving inet_daddr parameter in struct sk,
> commit 68835aba4d9b74e2f94106d13b6a4bddc447c4c8 impacting
include/net/inet_sock.h.
> This impacts "function __ip_sock_saddr:long (sock:long)"
Actually it breaks __ip_sock_daddr(), not __ip_sock_saddr().
> It is doing this:
> - __be32 inet_daddr;
> - __be32 inet_rcv_saddr;
> +#define inet_daddr sk.__sk_common.skc_daddr
> +#define inet_rcv_saddr sk.__sk_common.skc_rcv_saddr
>
>
> As this is not about only dereferencing pointers, I guess reading "inet_daddr" will
> require some "pure" code so I didn't propose solution (and it may require
> kread/CATCH_DEREF_FAULT stuff which I am not familiar with although it
is documented)
I just checked in commit 0321f20 which should fix this problem. I was
able to use @defined() to see if 'sk.__sk_common.skc_daddr' exists.
Things at least compile now. Let me know if my fix doesn't work for
you. Thanks for the bug report.
--
David Smith
dsmith@redhat.com
Red Hat
http://www.redhat.com
256.217.0141 (direct)
256.837.0057 (fax)