From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Bj=C3=B8rn_Mork?= Subject: Re: [PATCH 4.4 27/56] cdc_ncm: Set NTB format again after altsetting switch for Huawei devices Date: Wed, 15 Nov 2017 09:08:03 +0100 Message-ID: <87efp00xss.fsf@miraculix.mork.no> References: <1510705281.18523.53.camel@codethink.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: Enrico Mioso , Christian Panton , linux-usb@vger.kernel.org, netdev@vger.kernel.org, Oliver Neukum , "David S. Miller" , Porto Rio , Greg Kroah-Hartman To: Ben Hutchings Return-path: Received: from canardo.mork.no ([148.122.252.1]:59039 "EHLO canardo.mork.no" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755958AbdKOIIc (ORCPT ); Wed, 15 Nov 2017 03:08:32 -0500 In-Reply-To: <1510705281.18523.53.camel@codethink.co.uk> (Ben Hutchings's message of "Wed, 15 Nov 2017 00:21:21 +0000") Sender: netdev-owner@vger.kernel.org List-ID: Ben Hutchings writes: > On Tue, 2017-07-11 at 17:21 +0200, Enrico Mioso wrote: >> From: Enrico Mioso >>=20 >> commit 2b02c20ce0c28974b44e69a2e2f5ddc6a470ad6f upstream. > [...] >> --- a/drivers/net/usb/cdc_ncm.c >> +++ b/drivers/net/usb/cdc_ncm.c >> @@ -724,8 +724,10 @@ int cdc_ncm_bind_common(struct usbnet *d >> =C2=A0 u8 *buf; >> =C2=A0 int len; >> =C2=A0 int temp; >> + int err; >>=C2=A0 u8 iface_no; >>=C2=A0 struct usb_cdc_parsed_header hdr; >> + u16 curr_ntb_format; > [...] >> + err =3D usbnet_read_cmd(dev, USB_CDC_GET_NTB_FORMAT, >> + =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0USB_TYPE_CLASS | USB_DIR_IN | U= SB_RECIP_INTERFACE, >> + =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A00, iface_no, &curr_ntb_format, = 2); >> + if (err < 0) { >> + goto error2; >> + } >> + >> + if (curr_ntb_format =3D=3D USB_CDC_NCM_NTB32_FORMAT) { > [...] > > usbnet_read_cmd() doesn't do any byte-swapping, so it looks like > curr_ntb_format will have little-endian byte order (__le16 not u16).=20 > The comparison will then need to be done using > le16_to_cpu(curr_ntb_format). Right. Thanks. Fix coming up ASAP. I cannot explain why since we are obviously reading and writing 2 bytes here, but for some reason I've always thought of this value as 8 bit. Bj=C3=B8rn