mtd: rawnand: omap_elm: Fix incorrect type in assignment
Subsystems (2)
PATCH 1/1 mtd: rawnand: omap_elm: Fix incorrect type in assignment
Once the ECC word endianness is converted to BE32, we force cast it to u32 so we can use elm_write_reg() which in turn uses writel().
Fixes below sparse warnings:
drivers/mtd/nand/raw/omap_elm.c:180:37: sparse: expected unsigned int [usertype] val drivers/mtd/nand/raw/omap_elm.c:180:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:185:37: sparse: expected unsigned int [usertype] val drivers/mtd/nand/raw/omap_elm.c:185:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:190:37: sparse: expected unsigned int [usertype] val drivers/mtd/nand/raw/omap_elm.c:190:37: sparse: got restricted __be32 [usertype]
Quoted 1 line
Quoted 1 line
drivers/mtd/nand/raw/omap_elm.c:200:40: sparse: sparse: restricted__be32degrades to integer
drivers/mtd/nand/raw/omap_elm.c:206:39: sparse: sparse: restricted __be32 degrades to integer
drivers/mtd/nand/raw/omap_elm.c:210:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:210:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:213:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:213:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:216:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:216:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:219:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:219:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:222:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:222:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:225:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:225:37: sparse: got restricted __be32 [usertype]
drivers/mtd/nand/raw/omap_elm.c:228:39: sparse: sparse: restricted __be32 degrades to integer
--- drivers/mtd/nand/raw/omap_elm.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-)
drivers/mtd/nand/raw/omap_elm.c +12 -12
@@ -177,17 +177,17 @@ static void elm_load_syndrome(struct elm_info *info,switch (info->bch_type) {case BCH8_ECC :/* syndrome fragment 0 = ecc[9-12B] */ - val =cpu_to_be32 (*(u32 *) &ecc[9 ]); + val = (__force u32 )cpu_to_be32 (*(u32 *)&ecc[9 ]);elm_write_reg (info, offset, val);/* syndrome fragment 1 = ecc[5-8B] */ offset +=4 ; - val =cpu_to_be32 (*(u32 *) &ecc[5 ]); + val = (__force u32 )cpu_to_be32 (*(u32 *)&ecc[5 ]);elm_write_reg (info, offset, val);/* syndrome fragment 2 = ecc[1-4B] */ offset +=4 ; - val =cpu_to_be32 (*(u32 *) &ecc[1 ]); + val = (__force u32 )cpu_to_be32 (*(u32 *)&ecc[1 ]);elm_write_reg (info, offset, val);/* syndrome fragment 3 = ecc[0B] */
@@ -197,35 +197,35 @@ static void elm_load_syndrome(struct elm_info *info,break ;case BCH4_ECC :/* syndrome fragment 0 = ecc[20-52b] bits */ - val = (cpu_to_be32 (*(u32 *) &ecc[3 ]) >>4 ) | + val = ((__force u32 )cpu_to_be32 (*(u32 *)&ecc[3 ]) >>4 ) | ((ecc[2 ] &0xf ) <<28 );elm_write_reg (info, offset, val);/* syndrome fragment 1 = ecc[0-20b] bits */ offset +=4 ; - val =cpu_to_be32 (*(u32 *) &ecc[0 ]) >>12 ; + val = (__force u32 )cpu_to_be32 (*(u32 *)&ecc[0 ]) >>12 ;elm_write_reg (info, offset, val);break ;case BCH16_ECC : - val =cpu_to_be32 (*(u32 *) &ecc[22 ]); + val = (__force u32 )cpu_to_be32 (*(u32 *)&ecc[22 ]);elm_write_reg (info, offset, val); offset +=4 ; - val =cpu_to_be32 (*(u32 *) &ecc[18 ]); + val = (__force u32 )cpu_to_be32 (*(u32 *)&ecc[18 ]);elm_write_reg (info, offset, val); offset +=4 ; - val =cpu_to_be32 (*(u32 *) &ecc[14 ]); + val = (__force u32 )cpu_to_be32 (*(u32 *)&ecc[14 ]);elm_write_reg (info, offset, val); offset +=4 ; - val =cpu_to_be32 (*(u32 *) &ecc[10 ]); + val = (__force u32 )cpu_to_be32 (*(u32 *)&ecc[10 ]);elm_write_reg (info, offset, val); offset +=4 ; - val =cpu_to_be32 (*(u32 *) &ecc[6 ]); + val = (__force u32 )cpu_to_be32 (*(u32 *)&ecc[6 ]);elm_write_reg (info, offset, val); offset +=4 ; - val =cpu_to_be32 (*(u32 *) &ecc[2 ]); + val = (__force u32 )cpu_to_be32 (*(u32 *)&ecc[2 ]);elm_write_reg (info, offset, val); offset +=4 ; - val =cpu_to_be32 (*(u32 *) &ecc[0 ]) >>16 ; + val = (__force u32 )cpu_to_be32 (*(u32 *)&ecc[0 ]) >>16 ;elm_write_reg (info, offset, val);break ;default :
Signature · 1 line
2.34.1
Quoted 25 lines · Roger Quadros
Once the ECC word endianness is converted to BE32, we force cast it to u32 so we can use
elm_write_reg()which in turn useswritel().Fixes below sparse warnings:
drivers/mtd/nand/raw/omap_elm.c:180:37: sparse: expected unsigned int [usertype] val drivers/mtd/nand/raw/omap_elm.c:180:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:185:37: sparse: expected unsigned int [usertype] val drivers/mtd/nand/raw/omap_elm.c:185:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:190:37: sparse: expected unsigned int [usertype] val drivers/mtd/nand/raw/omap_elm.c:190:37: sparse: got restricted __be32 [usertype]Quoted 1 line
Quoted 1 line
drivers/mtd/nand/raw/omap_elm.c:200:40: sparse: sparse: restricted__be32degrades to integer
drivers/mtd/nand/raw/omap_elm.c:206:39: sparse: sparse: restricted__be32degrades to integerdrivers/mtd/nand/raw/omap_elm.c:210:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:210:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:213:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:213:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:216:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:216:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:219:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:219:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:222:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:222:37: sparse: got restricted __be32 [usertype] drivers/mtd/nand/raw/omap_elm.c:225:37: sparse: expected unsigned int [assigned] [usertype] val drivers/mtd/nand/raw/omap_elm.c:225:37: sparse: got restricted __be32 [usertype]
Quoted 6 lines
drivers/mtd/nand/raw/omap_elm.c:228:39: sparse: sparse: restricted__be32degrades to integerFixes bf22433575ef ("mtd: devices: elm: Add support for ELM error correction")Reported-by kernel test robot <[email protected]>Signed-off-by Roger Quadros <[email protected]>
Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/fixes, thanks.
Miquel