linux内核中b/w __raw_readl/__ raw_writel和readl/writel的区别是什么?

Yif*_*ang 11 linux kernel driver linux-kernel

b/w __raw_readl/__raw_writelreadl/writellinux内核有什么区别?据说readl/writel__raw_readl/__raw_writel我们更安全,为什么我们仍然使用__raw_readl/__raw_writel

在什么情况下我们应该使用这个:__raw_readl/__raw_writelreadl/writel

blu*_*ift 9

似乎到的情况是,

  • raw表示本机字节排序,非raw表示little-endian
  • __前缀替代品不包括内存屏障

请参阅此LKML讨论以及linux/arch/arm/include/asm/io.h中的注释