Patch "asm-generic/io.h: suppress endianness warnings for readq() and writeq()" has been added to the 5.10-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

    asm-generic/io.h: suppress endianness warnings for readq() and writeq()

to the 5.10-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:
     asm-generic-io.h-suppress-endianness-warnings-for-re.patch
and it can be found in the queue-5.10 subdirectory.

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



commit 6a56513c5cdd8d349fcd66aaba422a0461fb8e12
Author: Vladimir Oltean <vladimir.oltean@xxxxxxx>
Date:   Mon Jan 9 15:11:52 2023 +0200

    asm-generic/io.h: suppress endianness warnings for readq() and writeq()
    
    [ Upstream commit d564fa1ff19e893e2971d66e5c8f49dc1cdc8ffc ]
    
    Commit c1d55d50139b ("asm-generic/io.h: Fix sparse warnings on
    big-endian architectures") missed fixing the 64-bit accessors.
    
    Arnd explains in the attached link why the casts are necessary, even if
    __raw_readq() and __raw_writeq() do not take endian-specific types.
    
    Link: https://lore.kernel.org/lkml/9105d6fc-880b-4734-857d-e3d30b87ccf6@xxxxxxxxxxxxxxxx/
    Suggested-by: Arnd Bergmann <arnd@xxxxxxxx>
    Signed-off-by: Vladimir Oltean <vladimir.oltean@xxxxxxx>
    Reviewed-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
    Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
index 9ea83d80eb6f9..dcbd41048b4e7 100644
--- a/include/asm-generic/io.h
+++ b/include/asm-generic/io.h
@@ -190,7 +190,7 @@ static inline u64 readq(const volatile void __iomem *addr)
 	u64 val;
 
 	__io_br();
-	val = __le64_to_cpu(__raw_readq(addr));
+	val = __le64_to_cpu((__le64 __force)__raw_readq(addr));
 	__io_ar(val);
 	return val;
 }
@@ -233,7 +233,7 @@ static inline void writel(u32 value, volatile void __iomem *addr)
 static inline void writeq(u64 value, volatile void __iomem *addr)
 {
 	__io_bw();
-	__raw_writeq(__cpu_to_le64(value), addr);
+	__raw_writeq((u64 __force)__cpu_to_le64(value), addr);
 	__io_aw();
 }
 #endif



[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