• Arnd Bergmann's avatar
    drm/imagination: avoid -Woverflow warning · 07b9d014
    Arnd Bergmann authored
    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: 927f3e02 ("drm/imagination: Implement MIPS firmware processor and MMU support")
    Reviewed-by: default avatarDonald Robson <donald.robson@imgtec.com>
    Link: https://lore.kernel.org/lkml/9df9e4f87727399928c068dbbf614c9895ae15f9.camel@imgtec.com/Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarMatt Coster <matt.coster@imgtec.com>
    07b9d014
pvr_vm_mips.c 6.44 KB