From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933484AbbEMIXL (ORCPT ); Wed, 13 May 2015 04:23:11 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:30172 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932438AbbEMIXH (ORCPT ); Wed, 13 May 2015 04:23:07 -0400 Date: Wed, 13 May 2015 11:22:54 +0300 From: Dan Carpenter To: Mateusz Kulikowski Cc: devel@driverdev.osuosl.org, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 03/33] staging: rtl8192e: Mark unaligned memcpy() Message-ID: <20150513082254.GQ14154@mwanda> References: <1431206361-13736-1-git-send-email-mateusz.kulikowski@gmail.com> <1431206361-13736-4-git-send-email-mateusz.kulikowski@gmail.com> <20150511082646.GI14154@mwanda> <55525BCD.5030901@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55525BCD.5030901@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Source-IP: aserv0022.oracle.com [141.146.126.234] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 12, 2015 at 10:00:13PM +0200, Mateusz Kulikowski wrote: > On 11.05.2015 10:26, Dan Carpenter wrote: > (...) > >> */ > >> skb_pull(sub_skb, SNAP_SIZE); > >> - memcpy(skb_push(sub_skb, ETH_ALEN), prxb->src, ETH_ALEN); > >> - memcpy(skb_push(sub_skb, ETH_ALEN), prxb->dst, ETH_ALEN); > >> + memcpy(skb_push(sub_skb, ETH_ALEN), prxb->src, > >> + ETH_ALEN); /* Must be unaligned */ > > > > > > Which part isn't aligned? I think they both are. > > > struct rtllib_rxb *prxb = prxbIndicateArray[j]; > > struct rtllib_rxb { > u8 nr_subframes; > struct sk_buff *subframes[MAX_SUBFRAME_COUNT == 64]; > u8 dst[ETH_ALEN]; // here > u8 src[ETH_ALEN]; // here > } __packed; > > Either I forgot alignment / packing rules or this fields are never aligned "by design". You must have forgotten something... Everything after the pointer is going to be aligned sizeof(void *). regards, dan carpenter