Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3357482pxb; Mon, 17 Jan 2022 18:29:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJxlQdZblvG8d/S8kmvZloaBhbFI/wf0O7OdH/qwLVPZsNtqP7qV9KpODOY11dC6cA6NE5R8 X-Received: by 2002:a05:6a00:2391:b0:4a2:cb64:2c97 with SMTP id f17-20020a056a00239100b004a2cb642c97mr23889033pfc.36.1642472983167; Mon, 17 Jan 2022 18:29:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642472983; cv=none; d=google.com; s=arc-20160816; b=VlEJkLuU4aHlJ+NRgRiPJMSfxbXLVZDL6OqxbuieyYbo261iEvCyP9lm7LphEa0NZH fQzraiNcIstJ9p6xqZrzl/tXW2oCz/LsAitIngEGPx/r0/18VHS9e6ayJWyyhF+KCB9m QHgGSWsvKVfItkg6vvux+/Om/RV2dDTqPAzX6xA615S7tUMG0as/fSBn1dqGtBE7tqnC E/1OhUHZm8PD04qBWPhJKNKFbbBkMTj/qIKZ+yv1diHxON6wfaT1VW+n1bVV64cNRJKI +cP7lCzpR0BOUdD3obDLwR368FPD1utniEnAtwh5X6KDVlu9dKJnuo/yJAsplC/MwdWv alqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=5A9zw8DK4XnurUVLQ7j2649v3nJkf1PQr81bjgo1VmQ=; b=omnomfp+f4xr7rKzlYzBY3PjY6OpTH1rBMyTVGsv4So7IdjYhl6CbGT9g3hfHUOgm3 tMIbSfkN1aVm51A+jwR815F88Six82m9o+n70lp+YO8LdooM0K02iSF3LNj2B22UmcBK qe47BDNHJWXNksaa2Q/pWhiBTgIw3uJ4dU61MAQ7p30oZvLF/FqlmeUgIlJc3zvStxS8 nPrXBV+8B3YNEJvswLZ54WmPFqQWFbWdZ5V4ST7/9G7owR8dvM4hBbGueGAmq6LqD14W XHsxruHAq0oEuZPdlgMLhj8MmgYUqiXdYLQjBbHrrXnbeOpKVRIR+cciPqqcumcThmqT lK/A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=I96sjmSg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id rj1si1255869pjb.96.2022.01.17.18.29.31; Mon, 17 Jan 2022 18:29:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=I96sjmSg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238767AbiAQOOq (ORCPT + 99 others); Mon, 17 Jan 2022 09:14:46 -0500 Received: from mga09.intel.com ([134.134.136.24]:55398 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232040AbiAQOOb (ORCPT ); Mon, 17 Jan 2022 09:14:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642428871; x=1673964871; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=dpdDCUgIFGr2FuwMabXwCtN6FdEIwM7gKE2hLUmGplQ=; b=I96sjmSgw4oe3wkv++h1RNQ9mKPLYX7q5I0SYBHqXU32XBhKecQKohLE ipyANRe8K0C6FVAbSyDbdGHI5nZbJR8MyWId9SJHP8jNHM9edFEf1iXoi NWDYUVIErlLyxvQaXxe72C6RzRZvGRwgqLIUZBdGA48vdpunxDDyTw0N9 8HoPVoT/wP+lz75mX8lfmlwzDBUWv1kWqb/yQXmAxBqCvw5D9R4KZwrmZ rlnJXe1hYqsWHJEebo1nhYmCSAe/UUjv74caqBUR/VmG+gKgzw57ksJVp bsQrmL77qOENiphhcy3U230ngljFMgsRkCu22+Q4/SHhKNgJyQX5eLMXu A==; X-IronPort-AV: E=McAfee;i="6200,9189,10229"; a="244429786" X-IronPort-AV: E=Sophos;i="5.88,295,1635231600"; d="scan'208";a="244429786" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jan 2022 06:10:55 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,295,1635231600"; d="scan'208";a="671568402" Received: from kuha.fi.intel.com ([10.237.72.185]) by fmsmga001.fm.intel.com with SMTP; 17 Jan 2022 06:10:52 -0800 Received: by kuha.fi.intel.com (sSMTP sendmail emulation); Mon, 17 Jan 2022 16:10:51 +0200 Date: Mon, 17 Jan 2022 16:10:51 +0200 From: Heikki Krogerus To: Jon Hunter Cc: Stephan Gerhold , Andy Gross , Bjorn Andersson , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org Subject: Re: [PATCH] usb: common: ulpi: Fix crash in ulpi_match() Message-ID: References: <20220114100217.59541-1-jonathanh@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20220114100217.59541-1-jonathanh@nvidia.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jon, On Fri, Jan 14, 2022 at 10:02:17AM +0000, Jon Hunter wrote: > Commit 7495af930835 ("ARM: multi_v7_defconfig: Enable drivers for > DragonBoard 410c") enables the CONFIG_PHY_QCOM_USB_HS for the ARM > multi_v7_defconfig. Enabling this Kconfig is causing the kernel to crash > on the Tegra20 Ventana platform in the ulpi_match() function. > > The Qualcomm USB HS PHY driver that is enabled by CONFIG_PHY_QCOM_USB_HS, > registers a ulpi_driver but this driver does not provide an 'id_table', > so when ulpi_match() is called on the Tegra20 Ventana platform, it > crashes when attempting to deference the id_table pointer which is not > valid. The Qualcomm USB HS PHY driver uses device-tree for matching the > ULPI driver with the device and so fix this crash by using device-tree > for matching if the id_table is not valid. > > Signed-off-by: Jon Hunter So is this fixing commit 7495af930835, or perhaps commit ef6a7bcfb01c ("usb: ulpi: Support device discovery via DT")? I would assume ef6a7bcfb01c ("usb: ulpi: Support device discovery via DT"). Please include the appropriate Fixes tag. > --- > drivers/usb/common/ulpi.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/common/ulpi.c b/drivers/usb/common/ulpi.c > index 4169cf40a03b..8f8405b0d608 100644 > --- a/drivers/usb/common/ulpi.c > +++ b/drivers/usb/common/ulpi.c > @@ -39,8 +39,11 @@ static int ulpi_match(struct device *dev, struct device_driver *driver) > struct ulpi *ulpi = to_ulpi_dev(dev); > const struct ulpi_device_id *id; > > - /* Some ULPI devices don't have a vendor id so rely on OF match */ > - if (ulpi->id.vendor == 0) > + /* > + * Some ULPI devices don't have a vendor id > + * or provide an id_table so rely on OF match. > + */ > + if (ulpi->id.vendor == 0 || !drv->id_table) > return of_driver_match_device(dev, driver); > > for (id = drv->id_table; id->vendor; id++) > -- > 2.25.1 thanks, -- heikki