Re: [PATCH] tcp: fix tcp_fastopen unaligned access complaints on sparc

From: David Miller
Date: Thu Jan 12 2017 - 16:18:59 EST


From: Shannon Nelson <shannon.nelson@xxxxxxxxxx>
Date: Thu, 12 Jan 2017 12:56:08 -0800

>
>
> On 1/12/2017 12:41 PM, David Miller wrote:
>> From: Shannon Nelson <shannon.nelson@xxxxxxxxxx>
>> Date: Thu, 12 Jan 2017 12:30:38 -0800
>>
>>> On 1/12/2017 12:25 PM, Eric Dumazet wrote:
>>>> On Thu, 2017-01-12 at 13:15 -0700, Rob Gardner wrote:
>>>>
>>>>>
>>>>> I suspect that someplace, somebody is casting val to an int * or
>>>>> something like that.
>>>>
>>>> Then that would be the bug. Can we root cause this please ?
>>>>
>>>>
>>>
>>> Look in net/ipv4/tcp_fastopen.c:tcp_fastopen_cookie_gen() for the line
>>>
>>> struct in6_addr *buf = (struct in6_addr *) tmp.val;
>>
>> Oh yeah, that's it. I didn't notice that at all.
>>
>
> It looked to me like swapping the data fields would be the easiest and
> least impactive way to fix this. I didn't want to mess with the
> logic. I'm certainly open to other suggestions.

Given the nature of the problem, your fix is probably fine.

Eric, any objections?