diff mbox series

[v5] misc: pci_endpoint_test: Fix overflow of bar_size

Message ID 20250101151509.570341-1-18255117159@163.com (mailing list archive)
State Superseded
Delegated to: Krzysztof WilczyƄski
Headers show
Series [v5] misc: pci_endpoint_test: Fix overflow of bar_size | expand

Commit Message

Hans Zhang Jan. 1, 2025, 3:15 p.m. UTC
With 8GB BAR2, running pcitest -b 2 fails with "TEST FAILED".

The return value of the `pci_resource_len` interface is not an integer.
Using `pcitest` with an 8GB BAR2, the bar_size of integer type will
overflow.
Change the data type of bar_size from integer to resource_size_t, to fix
the above issue.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202501011917.ugP1ywJV-lkp@intel.com/
Signed-off-by: Hans Zhang <18255117159@163.com>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

---
Changes since v4:
https://lore.kernel.org/linux-pci/20241231065500.168799-1-18255117159@163.com/

- add base-commit.

Changes since v3:
https://lore.kernel.org/linux-pci/20241221141009.27317-1-18255117159@163.com/

- The patch subject were modified.

Changes since v2:
https://lore.kernel.org/linux-pci/20241220075253.16791-1-18255117159@163.com/

- Fix "changes" part goes below the --- line
- The patch commit message were modified.

Changes since v1:
https://lore.kernel.org/linux-pci/20241217121220.19676-1-18255117159@163.com/

- The patch subject and commit message were modified.
---
 drivers/misc/pci_endpoint_test.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)


base-commit: ccb98ccef0e543c2bd4ef1a72270461957f3d8d0

Comments

kernel test robot Jan. 2, 2025, 3:25 a.m. UTC | #1
Hi Hans,

kernel test robot noticed the following build errors:

[auto build test ERROR on ccb98ccef0e543c2bd4ef1a72270461957f3d8d0]

url:    https://github.com/intel-lab-lkp/linux/commits/Hans-Zhang/misc-pci_endpoint_test-Fix-overflow-of-bar_size/20250101-232250
base:   ccb98ccef0e543c2bd4ef1a72270461957f3d8d0
patch link:    https://lore.kernel.org/r/20250101151509.570341-1-18255117159%40163.com
patch subject: [v5] misc: pci_endpoint_test: Fix overflow of bar_size
config: i386-allmodconfig (https://download.01.org/0day-ci/archive/20250102/202501021000.7Cwcopot-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250102/202501021000.7Cwcopot-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202501021000.7Cwcopot-lkp@intel.com/

All errors (new ones prefixed by >>, old ones prefixed by <<):

WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/staging/gpib/fmh_gpib/fmh_gpib.o
>> ERROR: modpost: "__udivmoddi4" [drivers/misc/pci_endpoint_test.ko] undefined!
Bjorn Helgaas Jan. 3, 2025, 10:02 p.m. UTC | #2
On Wed, Jan 01, 2025 at 11:15:09PM +0800, Hans Zhang wrote:
> With 8GB BAR2, running pcitest -b 2 fails with "TEST FAILED".
> 
> The return value of the `pci_resource_len` interface is not an integer.
> Using `pcitest` with an 8GB BAR2, the bar_size of integer type will
> overflow.
> Change the data type of bar_size from integer to resource_size_t, to fix
> the above issue.

Add blank lines between paragraphs.

Looks good to me.

> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202501011917.ugP1ywJV-lkp@intel.com/
> Signed-off-by: Hans Zhang <18255117159@163.com>
> Reviewed-by: Niklas Cassel <cassel@kernel.org>
> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> 
> ---
> Changes since v4:
> https://lore.kernel.org/linux-pci/20241231065500.168799-1-18255117159@163.com/
> 
> - add base-commit.
> 
> Changes since v3:
> https://lore.kernel.org/linux-pci/20241221141009.27317-1-18255117159@163.com/
> 
> - The patch subject were modified.
> 
> Changes since v2:
> https://lore.kernel.org/linux-pci/20241220075253.16791-1-18255117159@163.com/
> 
> - Fix "changes" part goes below the --- line
> - The patch commit message were modified.
> 
> Changes since v1:
> https://lore.kernel.org/linux-pci/20241217121220.19676-1-18255117159@163.com/
> 
> - The patch subject and commit message were modified.
> ---
>  drivers/misc/pci_endpoint_test.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/pci_endpoint_test.c b/drivers/misc/pci_endpoint_test.c
> index 3aaaf47fa4ee..414c4e55fb0a 100644
> --- a/drivers/misc/pci_endpoint_test.c
> +++ b/drivers/misc/pci_endpoint_test.c
> @@ -280,10 +280,11 @@ static int pci_endpoint_test_bar_memcmp(struct pci_endpoint_test *test,
>  static bool pci_endpoint_test_bar(struct pci_endpoint_test *test,
>  				  enum pci_barno barno)
>  {
> -	int j, bar_size, buf_size, iters, remain;
>  	void *write_buf __free(kfree) = NULL;
>  	void *read_buf __free(kfree) = NULL;
>  	struct pci_dev *pdev = test->pdev;
> +	int j, buf_size, iters, remain;
> +	resource_size_t bar_size;
>  
>  	if (!test->bar[barno])
>  		return false;
> 
> base-commit: ccb98ccef0e543c2bd4ef1a72270461957f3d8d0
> -- 
> 2.25.1
>
Bjorn Helgaas Jan. 3, 2025, 10:12 p.m. UTC | #3
On Fri, Jan 03, 2025 at 04:02:00PM -0600, Bjorn Helgaas wrote:
> On Wed, Jan 01, 2025 at 11:15:09PM +0800, Hans Zhang wrote:
> > With 8GB BAR2, running pcitest -b 2 fails with "TEST FAILED".
> > 
> > The return value of the `pci_resource_len` interface is not an integer.
> > Using `pcitest` with an 8GB BAR2, the bar_size of integer type will
> > overflow.
> > Change the data type of bar_size from integer to resource_size_t, to fix
> > the above issue.
> 
> Add blank lines between paragraphs.
> 
> Looks good to me.

Apart from the kernel test robot error [1], of course.  Obviously that
needs to be resolved.

[1] https://lore.kernel.org/r/202501021000.7Cwcopot-lkp@intel.com
Hans Zhang Jan. 4, 2025, 2:25 p.m. UTC | #4
On 2025/1/4 06:02, Bjorn Helgaas wrote:
>> The return value of the `pci_resource_len` interface is not an integer.
>> Using `pcitest` with an 8GB BAR2, the bar_size of integer type will
>> overflow.
>> Change the data type of bar_size from integer to resource_size_t, to fix
>> the above issue.
> 
> Add blank lines between paragraphs.
> 
> Looks good to me.
> 


Thank you Bjorn.

Regards
Hans
Hans Zhang Jan. 4, 2025, 2:27 p.m. UTC | #5
On 2025/1/4 06:12, Bjorn Helgaas wrote:

> Apart from the kernel test robot error [1], of course.  Obviously that
> needs to be resolved.
> 
> [1] https://lore.kernel.org/r/202501021000.7Cwcopot-lkp@intel.com


I will fix it in version 7.

Regards
Hans
diff mbox series

Patch

diff --git a/drivers/misc/pci_endpoint_test.c b/drivers/misc/pci_endpoint_test.c
index 3aaaf47fa4ee..414c4e55fb0a 100644
--- a/drivers/misc/pci_endpoint_test.c
+++ b/drivers/misc/pci_endpoint_test.c
@@ -280,10 +280,11 @@  static int pci_endpoint_test_bar_memcmp(struct pci_endpoint_test *test,
 static bool pci_endpoint_test_bar(struct pci_endpoint_test *test,
 				  enum pci_barno barno)
 {
-	int j, bar_size, buf_size, iters, remain;
 	void *write_buf __free(kfree) = NULL;
 	void *read_buf __free(kfree) = NULL;
 	struct pci_dev *pdev = test->pdev;
+	int j, buf_size, iters, remain;
+	resource_size_t bar_size;
 
 	if (!test->bar[barno])
 		return false;