From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752976AbcD2L71 (ORCPT ); Fri, 29 Apr 2016 07:59:27 -0400 Received: from mga09.intel.com ([134.134.136.24]:7850 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752135AbcD2L7Z (ORCPT ); Fri, 29 Apr 2016 07:59:25 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,551,1455004800"; d="asc'?scan'208";a="942810860" From: Felipe Balbi To: Jim Lin Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] usb: gadget: f_fs: Fix kernel panic for SuperSpeed In-Reply-To: <57234522.9000607@nvidia.com> References: <1461321780-3226-1-git-send-email-jilin@nvidia.com> <87bn51uagb.fsf@intel.com> <571E0058.6020007@nvidia.com> <87r3dtrj7b.fsf@intel.com> <571F2BA3.6040209@nvidia.com> <871t5plya5.fsf@intel.com> <57234522.9000607@nvidia.com> User-Agent: Notmuch/0.21+96~g9bbc54b (http://notmuchmail.org) Emacs/25.0.90.3 (x86_64-pc-linux-gnu) Date: Fri, 29 Apr 2016 14:57:19 +0300 Message-ID: <87bn4siq5c.fsf@intel.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, Jim Lin writes: > On 2016=E5=B9=B404=E6=9C=8828=E6=97=A5 20:21, Felipe Balbi wrote: >>> >>> I also attach git log of system/core/adb/usb_linux_client.cpp of Android >>> N for your reference. >>> " >>> Author: Badhri Jagan Sridharan >>> Date: Mon Oct 5 13:04:03 2015 -0700 >>> >>> adbd: Add os descriptor support for adb. >>> >>> Eventhough windows does not rely on extended os >>> descriptor for adbd, when android usb device is >>> configures as a composite device such as mtp+adb, >>> windows discards the extended os descriptor even >>> if one of the USB function fails to send >>> the extended compat descriptor. This results in automatic >>> install of MTP driverto fail when Android device is in >>> "File Transfer" mode with adb enabled. >>> >>> https://msdn.microsoft.com/en-us/library/windows/hardware/gg463179.aspx >>> " >> Okay, cool. Can you check that you're limitting your controller's speed >> to high-speed ? >> > Let's focus on original patch. > Could you help to explain why we need below d->Reserved1 checking? > Now the question is that > > https://msdn.microsoft.com/en-us/library/windows/hardware/gg463179.aspx > > Page 7 of OS_Desc_CompatID.doc > defines reserved field to be 1 and > below code will think that os_desc is invalid because d->Reserved1 is 1. > > > In f_fs.c > " > static int __ffs_data_do_os_desc(enum ffs_os_desc_type type, > struct usb_os_desc_header *h, void *data, > unsigned len, void *priv) > { > struct ffs_data *ffs =3D priv; > u8 length; > > ENTER(); > > switch (type) { > case FFS_OS_DESC_EXT_COMPAT: { > struct usb_ext_compat_desc *d =3D data; > int i; > > if (len < sizeof(*d) || > d->bFirstInterfaceNumber >=3D ffs->interfaces_count || > d->Reserved1) > return -EINVAL; > " that's fine, but this is only failing because something else is returning the wrong set of descriptors (SS vs HS). That's the bug we want to fix, not work around it. =2D-=20 balbi --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJXI0wgAAoJEIaOsuA1yqREdo0P+gIdBZod0m22E2N733KQuD/g 93OPAo8tNQ3aNWouJ6F6y3qOF9mgSVBlROJkRPNk2pNTELgcyrOi8yFns35BRUaA JKsKAY2kaOu4yEupK2LwEAqfyJSatT/P2VaY9r0fImvJSUgHr1P45AG19Lr/HPTS aGQQtqh/o33frrWCawcoTUkXyghLvKe2Vc2UXt3S6LpJWngJokTutu8jmpPGCpTA m+ko2pzugaq8UEXqDLZyvesS+19lHFhJFT9uSYeSKBR8EnyU1TnBcs4RFBAAD+qO v7DuBUauVFkNLywNY1hxmX0s2PIUx53N4flsABjN4uDdU/uDddkxZTytZNyQwQjQ nYLgajHViPDyXPF590dP3QeSqfFheuhY63sQyKcu3o9sgmF+4or6CVCnB9dnkw2r ML69a9U9WRiAbYkrUbSUc2d9mF+KY8MwaB/XPbsnDzUrqbr+WefF7lGfUZYVMRQv zbvjj4g1v4Ob14xNUTFfPSrEenHiq1Cgks7o6ueyULhGy5jGCzoqBl2OzMN2Yu5W 2b+lqs3hhdpBm7Ng1YwahzEKekKqftpPIaJ8mip6yu4C7IDy33qJXURylySy2wQb ypYuO8Kz6XfW2DFNIjz0ZC8TSG7yPR1Wugq7SA2TbRr8Yrtev+kUVHcnBgUlGbB7 oy+xfkeTftwVFM+/jt1c =yhxr -----END PGP SIGNATURE----- --=-=-=--