From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3E76E16F27F for ; Thu, 7 May 2026 16:11:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.9 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778170320; cv=none; b=mP521XLvZqZoBnpn0EfqKh1oMEkpg7vhzzq2L1hBmq9FU+HQ64YxZEGqQsgiV26DEQMp1EoASizCU905zsMCFUFH/d7UTjCrW/TOIqzk9tE3klyNtaRiS1Psoh89YY0tCDl1s0HK7B5kLosNOmXRD/c/SO5145mWSB5mmXXzAC8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778170320; c=relaxed/simple; bh=NTsgWKUdinM9gp/+oKkg44S7SaUr/+f4Jz3ckbQXY9c=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=efB3g2Nq3I0SRnKzWh68/l8dC2YjOag1E+sOV5616jaSU3PwR15tEZe8o/eGf9bSmNtWqjyjUmGsnnvQgToEEP+hgCaNE9FEKQR5x9ejwGIai3JCS1NXOuJmfzCAdeHgflahFnMXuQpGqZcx3dYfVcAwzKF7uJBnogLjtupEs+I= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=f7Lx+9e4; arc=none smtp.client-ip=192.198.163.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="f7Lx+9e4" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1778170318; x=1809706318; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=NTsgWKUdinM9gp/+oKkg44S7SaUr/+f4Jz3ckbQXY9c=; b=f7Lx+9e44Akxh9eG6KUcmH9g4/0SbQ2UQutP5MNAAsi3riefZYOE5U1/ UPApA4UAwr5gczMAXxErdlBanqR6mhlCdOh0WJf6dsrhfLcq8/bDjVguI 490Bif+uPcKiSPNiuG4usShAQchshx/dqQQRbOcSc83qvZ7epxsNeGh+d or69c7JErV3WdF49GEl+QrYRsv9CEMo1ouKZMu59JzUib3qLCvaaCL0la pL72dEk8pLT+PYmQlDacfAtSQPrN6klMLpbYCL+Z+Sbxqlp4QQZ7zafQA xdJMd+DUOXLvYaM/GbqEcSMiLwD5RY9C1WpsxllupiCCvM+jFmri1eBAb w==; X-CSE-ConnectionGUID: vOhQ9X8GSQeXfKrZVC9vLQ== X-CSE-MsgGUID: 4uxOI/EmQ+GTEbpxM3iRLA== X-IronPort-AV: E=McAfee;i="6800,10657,11779"; a="89822361" X-IronPort-AV: E=Sophos;i="6.23,221,1770624000"; d="scan'208";a="89822361" Received: from orviesa007.jf.intel.com ([10.64.159.147]) by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 May 2026 09:11:48 -0700 X-CSE-ConnectionGUID: azvfb1CcRu+d0KD7gbcg7g== X-CSE-MsgGUID: +vgQ3UvAQU2QdwfB3Ocj+w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,221,1770624000"; d="scan'208";a="236765471" Received: from dnelso2-mobl.amr.corp.intel.com (HELO [10.125.110.240]) ([10.125.110.240]) by orviesa007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 May 2026 09:11:39 -0700 Message-ID: <72f4abb9-d6d4-427b-85ac-e99bf77e083c@intel.com> Date: Thu, 7 May 2026 09:11:37 -0700 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] ntb: amd: Use named initializer for pci_device_id::driver_data To: =?UTF-8?Q?Uwe_Kleine-K=C3=B6nig_=28The_Capable_Hub=29?= , Basavaraj Natikar , Shyam Sundar S K , Jon Mason , Allen Hubbe Cc: Markus Schneider-Pargmann , ntb@lists.linux.dev, linux-kernel@vger.kernel.org References: <20260507074102.2654314-2-u.kleine-koenig@baylibre.com> Content-Language: en-US From: Dave Jiang In-Reply-To: <20260507074102.2654314-2-u.kleine-koenig@baylibre.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 5/7/26 12:41 AM, Uwe Kleine-König (The Capable Hub) wrote: > The current list initialisation depends on the well hidden two zeros in > the PCI_VDEVICE macro. Instead use a named initialisation that is more > robust and easier to understand. > > Signed-off-by: Uwe Kleine-König (The Capable Hub) Reviewed-by: Dave Jiang > --- > Hello, > > while being a cleanup that can stand on its own this is also a > preparation for making .driver_data an anonymous union which allows to > do: > > diff --git a/drivers/ntb/hw/amd/ntb_hw_amd.c b/drivers/ntb/hw/amd/ntb_hw_amd.c > index 55408b431365..ee77d1235ec4 100644 > --- a/drivers/ntb/hw/amd/ntb_hw_amd.c > +++ b/drivers/ntb/hw/amd/ntb_hw_amd.c > @@ -1233,7 +1233,7 @@ static int amd_ntb_pci_probe(struct pci_dev *pdev, > goto err_ndev; > } > > - ndev->dev_data = (struct ntb_dev_data *)id->driver_data; > + ndev->dev_data = id->driver_data_ptr; > > ndev_init_struct(ndev, pdev); > > @@ -1328,14 +1328,14 @@ static const struct ntb_dev_data dev_data[] = { > }; > > static const struct pci_device_id amd_ntb_pci_tbl[] = { > - { PCI_VDEVICE(AMD, 0x145b), .driver_data = (kernel_ulong_t)&dev_data[0] }, > - { PCI_VDEVICE(AMD, 0x148b), .driver_data = (kernel_ulong_t)&dev_data[1] }, > - { PCI_VDEVICE(AMD, 0x14c0), .driver_data = (kernel_ulong_t)&dev_data[1] }, > - { PCI_VDEVICE(AMD, 0x14c3), .driver_data = (kernel_ulong_t)&dev_data[1] }, > - { PCI_VDEVICE(AMD, 0x155a), .driver_data = (kernel_ulong_t)&dev_data[1] }, > - { PCI_VDEVICE(AMD, 0x17d4), .driver_data = (kernel_ulong_t)&dev_data[1] }, > - { PCI_VDEVICE(AMD, 0x17d7), .driver_data = (kernel_ulong_t)&dev_data[2] }, > - { PCI_VDEVICE(HYGON, 0x145b), .driver_data = (kernel_ulong_t)&dev_data[0] }, > + { PCI_VDEVICE(AMD, 0x145b), .driver_data_ptr = &dev_data[0] }, > + { PCI_VDEVICE(AMD, 0x148b), .driver_data_ptr = &dev_data[1] }, > + { PCI_VDEVICE(AMD, 0x14c0), .driver_data_ptr = &dev_data[1] }, > + { PCI_VDEVICE(AMD, 0x14c3), .driver_data_ptr = &dev_data[1] }, > + { PCI_VDEVICE(AMD, 0x155a), .driver_data_ptr = &dev_data[1] }, > + { PCI_VDEVICE(AMD, 0x17d4), .driver_data_ptr = &dev_data[1] }, > + { PCI_VDEVICE(AMD, 0x17d7), .driver_data_ptr = &dev_data[2] }, > + { PCI_VDEVICE(HYGON, 0x145b), .driver_data_ptr = &dev_data[0] }, > { } > }; > MODULE_DEVICE_TABLE(pci, amd_ntb_pci_tbl); > > which is also a nice cleanup *and* further hints at also doing > > diff --git a/drivers/ntb/hw/amd/ntb_hw_amd.h b/drivers/ntb/hw/amd/ntb_hw_amd.h > index e8c3165fa38b..4ef7bafd21f7 100644 > --- a/drivers/ntb/hw/amd/ntb_hw_amd.h > +++ b/drivers/ntb/hw/amd/ntb_hw_amd.h > @@ -186,7 +186,7 @@ struct amd_ntb_dev { > u32 cntl_sta; > u32 peer_sta; > > - struct ntb_dev_data *dev_data; > + const struct ntb_dev_data *dev_data; > unsigned char mw_count; > unsigned char spad_count; > unsigned char db_count; > > due to a compiler warning. So all in all this yields easier to read > initialisation (not shorter and more compact but easier to grasp), > better type safety and harder to make mistakes due to the added const. > > Best regards > Uwe > --- > drivers/ntb/hw/amd/ntb_hw_amd.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/drivers/ntb/hw/amd/ntb_hw_amd.c b/drivers/ntb/hw/amd/ntb_hw_amd.c > index 1a163596ddf5..55408b431365 100644 > --- a/drivers/ntb/hw/amd/ntb_hw_amd.c > +++ b/drivers/ntb/hw/amd/ntb_hw_amd.c > @@ -1328,15 +1328,15 @@ static const struct ntb_dev_data dev_data[] = { > }; > > static const struct pci_device_id amd_ntb_pci_tbl[] = { > - { PCI_VDEVICE(AMD, 0x145b), (kernel_ulong_t)&dev_data[0] }, > - { PCI_VDEVICE(AMD, 0x148b), (kernel_ulong_t)&dev_data[1] }, > - { PCI_VDEVICE(AMD, 0x14c0), (kernel_ulong_t)&dev_data[1] }, > - { PCI_VDEVICE(AMD, 0x14c3), (kernel_ulong_t)&dev_data[1] }, > - { PCI_VDEVICE(AMD, 0x155a), (kernel_ulong_t)&dev_data[1] }, > - { PCI_VDEVICE(AMD, 0x17d4), (kernel_ulong_t)&dev_data[1] }, > - { PCI_VDEVICE(AMD, 0x17d7), (kernel_ulong_t)&dev_data[2] }, > - { PCI_VDEVICE(HYGON, 0x145b), (kernel_ulong_t)&dev_data[0] }, > - { 0, } > + { PCI_VDEVICE(AMD, 0x145b), .driver_data = (kernel_ulong_t)&dev_data[0] }, > + { PCI_VDEVICE(AMD, 0x148b), .driver_data = (kernel_ulong_t)&dev_data[1] }, > + { PCI_VDEVICE(AMD, 0x14c0), .driver_data = (kernel_ulong_t)&dev_data[1] }, > + { PCI_VDEVICE(AMD, 0x14c3), .driver_data = (kernel_ulong_t)&dev_data[1] }, > + { PCI_VDEVICE(AMD, 0x155a), .driver_data = (kernel_ulong_t)&dev_data[1] }, > + { PCI_VDEVICE(AMD, 0x17d4), .driver_data = (kernel_ulong_t)&dev_data[1] }, > + { PCI_VDEVICE(AMD, 0x17d7), .driver_data = (kernel_ulong_t)&dev_data[2] }, > + { PCI_VDEVICE(HYGON, 0x145b), .driver_data = (kernel_ulong_t)&dev_data[0] }, > + { } > }; > MODULE_DEVICE_TABLE(pci, amd_ntb_pci_tbl); > > > base-commit: 254f49634ee16a731174d2ae34bc50bd5f45e731