Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp3315092imm; Mon, 8 Oct 2018 01:43:39 -0700 (PDT) X-Google-Smtp-Source: ACcGV61YWXQLOb7vobyCTCR7WRR8T6ZyjRqtVamAuC37jz3DVNpbsxQPHCY+FyGqiyFjYbXhJQ46 X-Received: by 2002:a62:c8c3:: with SMTP id i64-v6mr24529208pfk.183.1538988219345; Mon, 08 Oct 2018 01:43:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538988219; cv=none; d=google.com; s=arc-20160816; b=xD7ZGKsd1/jOOLAqBVlStnDx20Rw7up1DfshzNTzGqUpVuAsLGNIY76AtwK1rgZNo7 TUnLFgTJBkUOonlcnEGc77dt/uU5Ul2UuWP8E1clndN+MGZx9ivo9CJWBCvr05NHlqty WOtiyOA+RVEJzq0dFty0zJ1mUpmsD3fpwkpW1qLgk+u9GzIstvb1fr+XBU25sQ7m3ZNR jGUFjZWyxjrCie5kgXSNegWSS3yMSodQq1E1LRQYi4J1WJhGXOlYLBYSUHFe6zX3JyN/ RbaGVtoemvatUKNxVr1M/mGnLZjNZeG0jLlGdCDjLdRurqR+auBjMlqU3r+e8IYLRZnL IU+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from; bh=Yp1jvwhlLbpofG7+pbwkWVeIDQR51hZpKBFMD2Ay5vw=; b=khYj89sSTjtIGPwuttbvX++qhbEzj8wF0jljTBfOHmU/q8cAdG9LISjbiG9yQPJBjV h+S0YTRyfDBFh+6PMH6w6hLAQokX1NG3EbTl05ElTQQm3qVxxyHUpedTWroNTqTgTcgB MIgfDgiLEFp+Dx4OGbOmLpn4NWxOG4eHwvLSWgv/Kxjkuo0L+STsxOi5WjubE+7mLbxh 2D8FjSHfVJGDMk1hOm/0rr06iFMFf4ayIfFjxGFDbWAdPCq9w3XI9949JuB1oJ4naPnx inlQFfy/sHBf8Nc5HLfnThID/oeX7649ZDGw4AdXQ2oZmEdTsYLrcncY98w+ek8yl3x1 a/Mw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i13-v6si15736442pgo.128.2018.10.08.01.43.23; Mon, 08 Oct 2018 01:43:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727284AbeJHPw2 convert rfc822-to-8bit (ORCPT + 99 others); Mon, 8 Oct 2018 11:52:28 -0400 Received: from eu-smtp-delivery-151.mimecast.com ([146.101.78.151]:26323 "EHLO eu-smtp-delivery-151.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726113AbeJHPw1 (ORCPT ); Mon, 8 Oct 2018 11:52:27 -0400 Received: from AcuMS.aculab.com (156.67.243.126 [156.67.243.126]) (Using TLS) by eu-smtp-1.mimecast.com with ESMTP id uk-mta-7-k_-Fo9wQMBuo98nnmOM7IA-1; Mon, 08 Oct 2018 09:41:48 +0100 Received: from AcuMS.Aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) by AcuMS.aculab.com (fd9f:af1c:a25b:0:43c:695e:880f:8750) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Mon, 8 Oct 2018 09:41:49 +0100 Received: from AcuMS.Aculab.com ([fe80::43c:695e:880f:8750]) by AcuMS.aculab.com ([fe80::43c:695e:880f:8750%12]) with mapi id 15.00.1347.000; Mon, 8 Oct 2018 09:41:49 +0100 From: David Laight To: 'David Miller' , "ben.dooks@codethink.co.uk" CC: "netdev@vger.kernel.org" , "oneukum@suse.com" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-kernel@lists.codethink.co.uk" Subject: RE: [PATCH] usbnet: smsc95xx: simplify tx_fixup code Thread-Topic: [PATCH] usbnet: smsc95xx: simplify tx_fixup code Thread-Index: AQHUXuLBTZ5BME15OECsJXYLxzUl/g== Date: Mon, 8 Oct 2018 08:41:49 +0000 Message-ID: <170d3d23a5c2463fab275d2e871775f3@AcuMS.aculab.com> References: <59988ed22559410881addfecf58335eb@AcuMS.aculab.com> <20181002165602.21033-1-ben.dooks@codethink.co.uk> <20181005.142412.601607260441380535.davem@davemloft.net> In-Reply-To: <20181005.142412.601607260441380535.davem@davemloft.net> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.202.205.107] MIME-Version: 1.0 X-MC-Unique: k_-Fo9wQMBuo98nnmOM7IA-1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: David Miller > Sent: 05 October 2018 22:24 > > From: Ben Dooks > Date: Tue, 2 Oct 2018 17:56:02 +0100 > > > - memcpy(skb->data, &tx_cmd_a, 4); > > + ptr = skb_push(skb, 8); > > + tx_cmd_a = cpu_to_le32(tx_cmd_a); > > + tx_cmd_b = cpu_to_le32(tx_cmd_b); > > + memcpy(ptr, &tx_cmd_a, 4); > > + memcpy(ptr+4, &tx_cmd_b, 4); > > Even a memcpy() through a void pointer does not guarantee that gcc will > not emit word sized loads and stores. True, but only if gcc can 'see' something that would require the pointer be aligned. In this case the void pointer comes from an external function so is fine. > You must use the get_unaligned()/put_unaligned() facilities to do this > properly. > > I also agree that making a proper type and structure instead of using > a void pointer would be better. The structure would need to be marked 'packed' - since its alignment isn't guaranteed. Then you don't need to use put_unaligned(). If it wasn't 'packed' then gcc would implement memcpy(&hdr->tx_cmd_a, &tx_cmd_a, 4) using an aligned write. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)