tree:
https://git.kernel.org/pub/scm/linux/kernel/git/mbroz/linux.git dm-cryptsetup
head: 143a1bb5cdc03325e4fbfbdb8d4fb96bafa830ee
commit: 143a1bb5cdc03325e4fbfbdb8d4fb96bafa830ee [1/1] dm-crypt: Implement Elephant
diffuser for Bitlocker compatibility
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-129-g341daf20-dirty
git checkout 143a1bb5cdc03325e4fbfbdb8d4fb96bafa830ee
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
> drivers/md/dm-crypt.c:786:44: sparse: sparse: restricted __le32
degrades to integer
drivers/md/dm-crypt.c:786:57: sparse: sparse: restricted
__le32 degrades to integer
drivers/md/dm-crypt.c:786:35: sparse: sparse: restricted __le32 degrades to integer
> drivers/md/dm-crypt.c:786:31: sparse: sparse: bad assignment (+=)
to restricted __le32
drivers/md/dm-crypt.c:792:31: sparse: sparse: bad assignment
(+=) to restricted __le32
drivers/md/dm-crypt.c:798:44: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:798:58: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:798:35: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:798:31: sparse: sparse: bad assignment (+=) to restricted __le32
drivers/md/dm-crypt.c:801:31: sparse: sparse: bad assignment (+=) to restricted __le32
drivers/md/dm-crypt.c:817:31: sparse: sparse: bad assignment (-=) to restricted __le32
drivers/md/dm-crypt.c:820:44: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:820:58: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:820:35: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:820:31: sparse: sparse: bad assignment (-=) to restricted __le32
drivers/md/dm-crypt.c:826:31: sparse: sparse: bad assignment (-=) to restricted __le32
drivers/md/dm-crypt.c:832:44: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:832:57: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:832:35: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:832:31: sparse: sparse: bad assignment (-=) to restricted __le32
drivers/md/dm-crypt.c:848:31: sparse: sparse: bad assignment (+=) to restricted __le32
drivers/md/dm-crypt.c:851:44: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:851:58: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:851:35: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:851:31: sparse: sparse: bad assignment (+=) to restricted __le32
drivers/md/dm-crypt.c:857:31: sparse: sparse: bad assignment (+=) to restricted __le32
drivers/md/dm-crypt.c:863:44: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:863:58: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:863:35: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:863:31: sparse: sparse: bad assignment (+=) to restricted __le32
drivers/md/dm-crypt.c:879:44: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:879:58: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:879:35: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:879:31: sparse: sparse: bad assignment (-=) to restricted __le32
drivers/md/dm-crypt.c:885:31: sparse: sparse: bad assignment (-=) to restricted __le32
drivers/md/dm-crypt.c:891:44: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:891:58: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:891:35: sparse: sparse: restricted __le32 degrades to integer
drivers/md/dm-crypt.c:891:31: sparse: sparse: bad assignment (-=) to restricted __le32
drivers/md/dm-crypt.c:894:31: sparse: sparse: bad assignment (-=) to restricted __le32
vim +786 drivers/md/dm-crypt.c
775
776 static void diffuser_a_decrypt(__le32 *d, size_t n)
777 {
778 int i, i1, i2, i3;
779
780 for (i = 0; i < 5; i++) {
781 i1 = 0;
782 i2 = n - 2;
783 i3 = n - 5;
784
785 while (i1 < (n - 1)) {
786 d[i1] += d[i2] ^ (d[i3] << 9 | d[i3] >> 23);
787 i1++; i2++; i3++;
788
789 if (i3 >= n)
790 i3 -= n;
791
792 d[i1] += d[i2] ^ d[i3];
793 i1++; i2++; i3++;
794
795 if (i2 >= n)
796 i2 -= n;
797
798 d[i1] += d[i2] ^ (d[i3] << 13 | d[i3] >> 19);
799 i1++; i2++; i3++;
800
801 d[i1] += d[i2] ^ d[i3];
802 i1++; i2++; i3++;
803 }
804 }
805 }
806
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation