• Arnd Bergmann's avatar
    EDAC, altera: Work around int-to-pointer-cast warnings · 8537bf10
    Arnd Bergmann authored
    The altera edac driver passes a token from a DT resource as
    resource_size_t into an SMC call, but casts it to an __iomem pointer and
    then a plain void pointer inbetween, mixing three or four incompatible
    types in the process. The compiler complains about one of the
    conversions:
    
      drivers/edac/altera_edac.c: In function 'altr_init_a10_ecc_block':
      drivers/edac/altera_edac.c:1053:10: error: cast to pointer from integer of \
    	  different size [-Werror=int-to-pointer-cast]
         base = (void __iomem *)res.start;
                ^
      drivers/edac/altera_edac.c: In function 'altr_edac_a10_probe':
      drivers/edac/altera_edac.c:2062:10: error: cast to pointer from integer of \
    	  different size [-Werror=int-to-pointer-cast]
         base = (void __iomem *)res.start;
    
    Using a static checker probably also notices the __iomem cast.  Solving
    this properly isn't trivial, but simply casting to a 'uintptr_t' instead
    of 'void __iomem *' makes it less wrong and should avoid the warnings.
    
    Fixes: d5fc9125 ("EDAC, altera: Combine Stratix10 and Arria10 probe functions")
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Reviewed-by: default avatarThor Thayer <thor.thayer@linux.intel.com>
    Cc: Mauro Carvalho Chehab <mchehab@kernel.org>
    Cc: David Frey <dpfrey@gmail.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Cc: linux-edac@vger.kernel.org
    Link: https://lkml.kernel.org/r/20180927100949.973078-1-arnd@arndb.de
    8537bf10
altera_edac.c 59.4 KB