Patch "drm/imagination: avoid -Woverflow warning" has been added to the 6.8-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/imagination: avoid -Woverflow warning

to the 6.8-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-imagination-avoid-woverflow-warning.patch
and it can be found in the queue-6.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit de67326dae6c327b968567c3d61adf476df69a53
Author: Arnd Bergmann <arnd@xxxxxxxx>
Date:   Fri Mar 22 14:01:09 2024 +0100

    drm/imagination: avoid -Woverflow warning
    
    [ Upstream commit 07b9d0144fff9af08b8dcd0ae134510bfd539e42 ]
    
    The array size calculation in pvr_vm_mips_fini() appears to be incorrect based on
    taking the size of the pointer rather than the size of the array, which manifests
    as a warning about signed integer overflow:
    
    In file included from include/linux/kernel.h:16,
                     from drivers/gpu/drm/imagination/pvr_rogue_fwif.h:10,
                     from drivers/gpu/drm/imagination/pvr_ccb.h:7,
                     from drivers/gpu/drm/imagination/pvr_device.h:7,
                     from drivers/gpu/drm/imagination/pvr_vm_mips.c:4:
    drivers/gpu/drm/imagination/pvr_vm_mips.c: In function 'pvr_vm_mips_fini':
    include/linux/array_size.h:11:25: error: overflow in conversion from 'long unsigned int' to 'int' changes value from '18446744073709551615' to '-1' [-Werror=overflow]
       11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
          |                         ^
    drivers/gpu/drm/imagination/pvr_vm_mips.c:106:24: note: in expansion of macro 'ARRAY_SIZE'
      106 |         for (page_nr = ARRAY_SIZE(mips_data->pt_pages) - 1; page_nr >= 0; page_nr--) {
          |                        ^~~~~~~~~~
    
    Just use the number of array elements directly here, and in the corresponding
    init function for consistency.
    
    Fixes: 927f3e0253c1 ("drm/imagination: Implement MIPS firmware processor and MMU support")
    Reviewed-by: Donald Robson <donald.robson@xxxxxxxxxx>
    Link: https://lore.kernel.org/lkml/9df9e4f87727399928c068dbbf614c9895ae15f9.camel@xxxxxxxxxx/
    Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
    Signed-off-by: Matt Coster <matt.coster@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/imagination/pvr_vm_mips.c b/drivers/gpu/drm/imagination/pvr_vm_mips.c
index b7fef3c797e6c..4f99b4af871c0 100644
--- a/drivers/gpu/drm/imagination/pvr_vm_mips.c
+++ b/drivers/gpu/drm/imagination/pvr_vm_mips.c
@@ -46,7 +46,7 @@ pvr_vm_mips_init(struct pvr_device *pvr_dev)
 	if (!mips_data)
 		return -ENOMEM;
 
-	for (page_nr = 0; page_nr < ARRAY_SIZE(mips_data->pt_pages); page_nr++) {
+	for (page_nr = 0; page_nr < PVR_MIPS_PT_PAGE_COUNT; page_nr++) {
 		mips_data->pt_pages[page_nr] = alloc_page(GFP_KERNEL | __GFP_ZERO);
 		if (!mips_data->pt_pages[page_nr]) {
 			err = -ENOMEM;
@@ -102,7 +102,7 @@ pvr_vm_mips_fini(struct pvr_device *pvr_dev)
 	int page_nr;
 
 	vunmap(mips_data->pt);
-	for (page_nr = ARRAY_SIZE(mips_data->pt_pages) - 1; page_nr >= 0; page_nr--) {
+	for (page_nr = PVR_MIPS_PT_PAGE_COUNT - 1; page_nr >= 0; page_nr--) {
 		dma_unmap_page(from_pvr_device(pvr_dev)->dev,
 			       mips_data->pt_dma_addr[page_nr], PAGE_SIZE, DMA_TO_DEVICE);
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux