From: Philip Li <philip.li@intel.com>
To: kernel test robot <lkp@intel.com>
Cc: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>,
<oe-kbuild-all@lists.linux.dev>, <linux-kernel@vger.kernel.org>,
"Andrew Morton" <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>
Subject: Re: drivers/mtd/ubi/fastmap.c:1028:17: sparse: sparse: incorrect type in assignment (different base types)
Date: Sun, 12 Nov 2023 14:39:03 +0800 [thread overview]
Message-ID: <ZVBzB8egXofbupod@rli9-mobl> (raw)
In-Reply-To: <202311120122.miUV2XBw-lkp@intel.com>
On Sun, Nov 12, 2023 at 01:17:53AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 3ca112b71f35dd5d99fc4571a56b5fc6f0c15814
> commit: d991bb1c8da842a2a0b9dc83b1005e655783f861 include/linux/compiler-gcc.h: sparse can do constant folding of __builtin_bswap*()
> date: 2 years, 6 months ago
> config: i386-randconfig-062-20230912 (https://download.01.org/0day-ci/archive/20231112/202311120122.miUV2XBw-lkp@intel.com/config)
> compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231112/202311120122.miUV2XBw-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202311120122.miUV2XBw-lkp@intel.com/
Kindly ignore this report, the commit here is not the cause of the warning.
Sorry for the false positive.
>
> sparse warnings: (new ones prefixed by >>)
> drivers/mtd/ubi/fastmap.c:569:23: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long max_sqnum @@ got restricted __be64 [usertype] sqnum @@
> drivers/mtd/ubi/fastmap.c:569:23: sparse: expected unsigned long long max_sqnum
> drivers/mtd/ubi/fastmap.c:569:23: sparse: got restricted __be64 [usertype] sqnum
> >> drivers/mtd/ubi/fastmap.c:1028:17: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] tmp_crc @@ got unsigned int [usertype] @@
> drivers/mtd/ubi/fastmap.c:1028:17: sparse: expected restricted __be32 [usertype] tmp_crc
> drivers/mtd/ubi/fastmap.c:1028:17: sparse: got unsigned int [usertype]
> drivers/mtd/ubi/fastmap.c:1030:13: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] crc @@ got unsigned int @@
> drivers/mtd/ubi/fastmap.c:1030:13: sparse: expected restricted __be32 [usertype] crc
> drivers/mtd/ubi/fastmap.c:1030:13: sparse: got unsigned int
> drivers/mtd/ubi/fastmap.c:1039:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be64 [usertype] sqnum @@ got unsigned long long [assigned] sqnum @@
> drivers/mtd/ubi/fastmap.c:1039:22: sparse: expected restricted __be64 [usertype] sqnum
> drivers/mtd/ubi/fastmap.c:1039:22: sparse: got unsigned long long [assigned] sqnum
>
> vim +1028 drivers/mtd/ubi/fastmap.c
>
> 8a1435880f4524 Rabin Vincent 2017-04-03 838
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 839 /**
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 840 * ubi_scan_fastmap - scan the fastmap.
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 841 * @ubi: UBI device object
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 842 * @ai: UBI attach info to be filled
> fdf10ed710c0aa Richard Weinberger 2016-06-14 843 * @scan_ai: UBI attach info from the first 64 PEBs,
> fdf10ed710c0aa Richard Weinberger 2016-06-14 844 * used to find the most recent Fastmap data structure
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 845 *
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 846 * Returns 0 on success, UBI_NO_FASTMAP if no fastmap was found,
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 847 * UBI_BAD_FASTMAP if one was found but is not usable.
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 848 * < 0 indicates an internal error.
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 849 */
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 850 int ubi_scan_fastmap(struct ubi_device *ubi, struct ubi_attach_info *ai,
> fdf10ed710c0aa Richard Weinberger 2016-06-14 851 struct ubi_attach_info *scan_ai)
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 852 {
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 853 struct ubi_fm_sb *fmsb, *fmsb2;
> 3291b52f9ff0ac Boris Brezillon 2016-09-16 854 struct ubi_vid_io_buf *vb;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 855 struct ubi_vid_hdr *vh;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 856 struct ubi_ec_hdr *ech;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 857 struct ubi_fastmap_layout *fm;
> 8a1435880f4524 Rabin Vincent 2017-04-03 858 struct ubi_ainf_peb *aeb;
> fdf10ed710c0aa Richard Weinberger 2016-06-14 859 int i, used_blocks, pnum, fm_anchor, ret = 0;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 860 size_t fm_size;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 861 __be32 crc, tmp_crc;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 862 unsigned long long sqnum = 0;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 863
> fdf10ed710c0aa Richard Weinberger 2016-06-14 864 fm_anchor = find_fm_anchor(scan_ai);
> fdf10ed710c0aa Richard Weinberger 2016-06-14 865 if (fm_anchor < 0)
> fdf10ed710c0aa Richard Weinberger 2016-06-14 866 return UBI_NO_FASTMAP;
> fdf10ed710c0aa Richard Weinberger 2016-06-14 867
> 8a1435880f4524 Rabin Vincent 2017-04-03 868 /* Copy all (possible) fastmap blocks into our new attach structure. */
> 8a1435880f4524 Rabin Vincent 2017-04-03 869 list_for_each_entry(aeb, &scan_ai->fastmap, u.list) {
> 8a1435880f4524 Rabin Vincent 2017-04-03 870 struct ubi_ainf_peb *new;
> 8a1435880f4524 Rabin Vincent 2017-04-03 871
> 8a1435880f4524 Rabin Vincent 2017-04-03 872 new = clone_aeb(ai, aeb);
> 8a1435880f4524 Rabin Vincent 2017-04-03 873 if (!new)
> 8a1435880f4524 Rabin Vincent 2017-04-03 874 return -ENOMEM;
> 8a1435880f4524 Rabin Vincent 2017-04-03 875
> 8a1435880f4524 Rabin Vincent 2017-04-03 876 list_add(&new->u.list, &ai->fastmap);
> 8a1435880f4524 Rabin Vincent 2017-04-03 877 }
> fdf10ed710c0aa Richard Weinberger 2016-06-14 878
> 111ab0b26fc1bf Richard Weinberger 2014-11-10 879 down_write(&ubi->fm_protect);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 880 memset(ubi->fm_buf, 0, ubi->fm_size);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 881
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 882 fmsb = kmalloc(sizeof(*fmsb), GFP_KERNEL);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 883 if (!fmsb) {
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 884 ret = -ENOMEM;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 885 goto out;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 886 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 887
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 888 fm = kzalloc(sizeof(*fm), GFP_KERNEL);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 889 if (!fm) {
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 890 ret = -ENOMEM;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 891 kfree(fmsb);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 892 goto out;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 893 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 894
> fcbb6af17bda4b Boris Brezillon 2016-09-16 895 ret = ubi_io_read_data(ubi, fmsb, fm_anchor, 0, sizeof(*fmsb));
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 896 if (ret && ret != UBI_IO_BITFLIPS)
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 897 goto free_fm_sb;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 898 else if (ret == UBI_IO_BITFLIPS)
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 899 fm->to_be_tortured[0] = 1;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 900
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 901 if (be32_to_cpu(fmsb->magic) != UBI_FM_SB_MAGIC) {
> 326087033108e7 Tanya Brokhman 2014-10-20 902 ubi_err(ubi, "bad super block magic: 0x%x, expected: 0x%x",
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 903 be32_to_cpu(fmsb->magic), UBI_FM_SB_MAGIC);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 904 ret = UBI_BAD_FASTMAP;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 905 goto free_fm_sb;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 906 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 907
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 908 if (fmsb->version != UBI_FM_FMT_VERSION) {
> 326087033108e7 Tanya Brokhman 2014-10-20 909 ubi_err(ubi, "bad fastmap version: %i, expected: %i",
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 910 fmsb->version, UBI_FM_FMT_VERSION);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 911 ret = UBI_BAD_FASTMAP;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 912 goto free_fm_sb;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 913 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 914
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 915 used_blocks = be32_to_cpu(fmsb->used_blocks);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 916 if (used_blocks > UBI_FM_MAX_BLOCKS || used_blocks < 1) {
> 326087033108e7 Tanya Brokhman 2014-10-20 917 ubi_err(ubi, "number of fastmap blocks is invalid: %i",
> 326087033108e7 Tanya Brokhman 2014-10-20 918 used_blocks);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 919 ret = UBI_BAD_FASTMAP;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 920 goto free_fm_sb;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 921 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 922
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 923 fm_size = ubi->leb_size * used_blocks;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 924 if (fm_size != ubi->fm_size) {
> 326087033108e7 Tanya Brokhman 2014-10-20 925 ubi_err(ubi, "bad fastmap size: %zi, expected: %zi",
> 326087033108e7 Tanya Brokhman 2014-10-20 926 fm_size, ubi->fm_size);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 927 ret = UBI_BAD_FASTMAP;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 928 goto free_fm_sb;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 929 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 930
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 931 ech = kzalloc(ubi->ec_hdr_alsize, GFP_KERNEL);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 932 if (!ech) {
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 933 ret = -ENOMEM;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 934 goto free_fm_sb;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 935 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 936
> 3291b52f9ff0ac Boris Brezillon 2016-09-16 937 vb = ubi_alloc_vid_buf(ubi, GFP_KERNEL);
> 3291b52f9ff0ac Boris Brezillon 2016-09-16 938 if (!vb) {
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 939 ret = -ENOMEM;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 940 goto free_hdr;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 941 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 942
> 3291b52f9ff0ac Boris Brezillon 2016-09-16 943 vh = ubi_get_vid_hdr(vb);
> 3291b52f9ff0ac Boris Brezillon 2016-09-16 944
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 945 for (i = 0; i < used_blocks; i++) {
> c22301ad4fa0f4 Richard Genoud 2013-09-28 946 int image_seq;
> c22301ad4fa0f4 Richard Genoud 2013-09-28 947
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 948 pnum = be32_to_cpu(fmsb->block_loc[i]);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 949
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 950 if (ubi_io_is_bad(ubi, pnum)) {
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 951 ret = UBI_BAD_FASTMAP;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 952 goto free_hdr;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 953 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 954
> 5283ec72b0cca4 Richard Weinberger 2016-06-14 955 if (i == 0 && pnum != fm_anchor) {
> 5283ec72b0cca4 Richard Weinberger 2016-06-14 956 ubi_err(ubi, "Fastmap anchor PEB mismatch: PEB: %i vs. %i",
> 5283ec72b0cca4 Richard Weinberger 2016-06-14 957 pnum, fm_anchor);
> 5283ec72b0cca4 Richard Weinberger 2016-06-14 958 ret = UBI_BAD_FASTMAP;
> 5283ec72b0cca4 Richard Weinberger 2016-06-14 959 goto free_hdr;
> 5283ec72b0cca4 Richard Weinberger 2016-06-14 960 }
> 5283ec72b0cca4 Richard Weinberger 2016-06-14 961
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 962 ret = ubi_io_read_ec_hdr(ubi, pnum, ech, 0);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 963 if (ret && ret != UBI_IO_BITFLIPS) {
> 326087033108e7 Tanya Brokhman 2014-10-20 964 ubi_err(ubi, "unable to read fastmap block# %i EC (PEB: %i)",
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 965 i, pnum);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 966 if (ret > 0)
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 967 ret = UBI_BAD_FASTMAP;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 968 goto free_hdr;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 969 } else if (ret == UBI_IO_BITFLIPS)
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 970 fm->to_be_tortured[i] = 1;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 971
> c22301ad4fa0f4 Richard Genoud 2013-09-28 972 image_seq = be32_to_cpu(ech->image_seq);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 973 if (!ubi->image_seq)
> c22301ad4fa0f4 Richard Genoud 2013-09-28 974 ubi->image_seq = image_seq;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 975
> c22301ad4fa0f4 Richard Genoud 2013-09-28 976 /*
> c22301ad4fa0f4 Richard Genoud 2013-09-28 977 * Older UBI implementations have image_seq set to zero, so
> c22301ad4fa0f4 Richard Genoud 2013-09-28 978 * we shouldn't fail if image_seq == 0.
> c22301ad4fa0f4 Richard Genoud 2013-09-28 979 */
> c22301ad4fa0f4 Richard Genoud 2013-09-28 980 if (image_seq && (image_seq != ubi->image_seq)) {
> 326087033108e7 Tanya Brokhman 2014-10-20 981 ubi_err(ubi, "wrong image seq:%d instead of %d",
> c22301ad4fa0f4 Richard Genoud 2013-09-28 982 be32_to_cpu(ech->image_seq), ubi->image_seq);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 983 ret = UBI_BAD_FASTMAP;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 984 goto free_hdr;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 985 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 986
> 3291b52f9ff0ac Boris Brezillon 2016-09-16 987 ret = ubi_io_read_vid_hdr(ubi, pnum, vb, 0);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 988 if (ret && ret != UBI_IO_BITFLIPS) {
> 326087033108e7 Tanya Brokhman 2014-10-20 989 ubi_err(ubi, "unable to read fastmap block# %i (PEB: %i)",
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 990 i, pnum);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 991 goto free_hdr;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 992 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 993
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 994 if (i == 0) {
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 995 if (be32_to_cpu(vh->vol_id) != UBI_FM_SB_VOLUME_ID) {
> 326087033108e7 Tanya Brokhman 2014-10-20 996 ubi_err(ubi, "bad fastmap anchor vol_id: 0x%x, expected: 0x%x",
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 997 be32_to_cpu(vh->vol_id),
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 998 UBI_FM_SB_VOLUME_ID);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 999 ret = UBI_BAD_FASTMAP;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1000 goto free_hdr;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1001 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1002 } else {
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1003 if (be32_to_cpu(vh->vol_id) != UBI_FM_DATA_VOLUME_ID) {
> 326087033108e7 Tanya Brokhman 2014-10-20 1004 ubi_err(ubi, "bad fastmap data vol_id: 0x%x, expected: 0x%x",
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1005 be32_to_cpu(vh->vol_id),
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1006 UBI_FM_DATA_VOLUME_ID);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1007 ret = UBI_BAD_FASTMAP;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1008 goto free_hdr;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1009 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1010 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1011
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1012 if (sqnum < be64_to_cpu(vh->sqnum))
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1013 sqnum = be64_to_cpu(vh->sqnum);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1014
> fcbb6af17bda4b Boris Brezillon 2016-09-16 1015 ret = ubi_io_read_data(ubi, ubi->fm_buf + (ubi->leb_size * i),
> fcbb6af17bda4b Boris Brezillon 2016-09-16 1016 pnum, 0, ubi->leb_size);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1017 if (ret && ret != UBI_IO_BITFLIPS) {
> 326087033108e7 Tanya Brokhman 2014-10-20 1018 ubi_err(ubi, "unable to read fastmap block# %i (PEB: %i, "
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1019 "err: %i)", i, pnum, ret);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1020 goto free_hdr;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1021 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1022 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1023
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1024 kfree(fmsb);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1025 fmsb = NULL;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1026
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1027 fmsb2 = (struct ubi_fm_sb *)(ubi->fm_buf);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 @1028 tmp_crc = be32_to_cpu(fmsb2->data_crc);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1029 fmsb2->data_crc = 0;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1030 crc = crc32(UBI_CRC32_INIT, ubi->fm_buf, fm_size);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1031 if (crc != tmp_crc) {
> 326087033108e7 Tanya Brokhman 2014-10-20 1032 ubi_err(ubi, "fastmap data CRC is invalid");
> 326087033108e7 Tanya Brokhman 2014-10-20 1033 ubi_err(ubi, "CRC should be: 0x%x, calc: 0x%x",
> 326087033108e7 Tanya Brokhman 2014-10-20 1034 tmp_crc, crc);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1035 ret = UBI_BAD_FASTMAP;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1036 goto free_hdr;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1037 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1038
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1039 fmsb2->sqnum = sqnum;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1040
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1041 fm->used_blocks = used_blocks;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1042
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1043 ret = ubi_attach_fastmap(ubi, ai, fm);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1044 if (ret) {
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1045 if (ret > 0)
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1046 ret = UBI_BAD_FASTMAP;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1047 goto free_hdr;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1048 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1049
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1050 for (i = 0; i < used_blocks; i++) {
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1051 struct ubi_wl_entry *e;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1052
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1053 e = kmem_cache_alloc(ubi_wl_entry_slab, GFP_KERNEL);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1054 if (!e) {
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1055 while (i--)
> af7bcee27652bb Pan Bian 2017-10-29 1056 kmem_cache_free(ubi_wl_entry_slab, fm->e[i]);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1057
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1058 ret = -ENOMEM;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1059 goto free_hdr;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1060 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1061
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1062 e->pnum = be32_to_cpu(fmsb2->block_loc[i]);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1063 e->ec = be32_to_cpu(fmsb2->block_ec[i]);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1064 fm->e[i] = e;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1065 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1066
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1067 ubi->fm = fm;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1068 ubi->fm_pool.max_size = ubi->fm->max_pool_size;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1069 ubi->fm_wl_pool.max_size = ubi->fm->max_wl_pool_size;
> 326087033108e7 Tanya Brokhman 2014-10-20 1070 ubi_msg(ubi, "attached by fastmap");
> 326087033108e7 Tanya Brokhman 2014-10-20 1071 ubi_msg(ubi, "fastmap pool size: %d", ubi->fm_pool.max_size);
> 326087033108e7 Tanya Brokhman 2014-10-20 1072 ubi_msg(ubi, "fastmap WL pool size: %d",
> 326087033108e7 Tanya Brokhman 2014-10-20 1073 ubi->fm_wl_pool.max_size);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1074 ubi->fm_disabled = 0;
> 1900149c835ab5 Richard Weinberger 2016-04-26 1075 ubi->fast_attach = 1;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1076
> 3291b52f9ff0ac Boris Brezillon 2016-09-16 1077 ubi_free_vid_buf(vb);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1078 kfree(ech);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1079 out:
> 111ab0b26fc1bf Richard Weinberger 2014-11-10 1080 up_write(&ubi->fm_protect);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1081 if (ret == UBI_BAD_FASTMAP)
> 326087033108e7 Tanya Brokhman 2014-10-20 1082 ubi_err(ubi, "Attach by fastmap failed, doing a full scan!");
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1083 return ret;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1084
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1085 free_hdr:
> 3291b52f9ff0ac Boris Brezillon 2016-09-16 1086 ubi_free_vid_buf(vb);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1087 kfree(ech);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1088 free_fm_sb:
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1089 kfree(fmsb);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1090 kfree(fm);
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1091 goto out;
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1092 }
> dbb7d2a88d2a7b Richard Weinberger 2012-09-26 1093
>
> :::::: The code at line 1028 was first introduced by commit
> :::::: dbb7d2a88d2a7bd3624e090bee42cdee048d9290 UBI: Add fastmap core
>
> :::::: TO: Richard Weinberger <richard@nod.at>
> :::::: CC: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
prev parent reply other threads:[~2023-11-12 6:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-11 17:17 drivers/mtd/ubi/fastmap.c:1028:17: sparse: sparse: incorrect type in assignment (different base types) kernel test robot
2023-11-12 6:39 ` Philip Li [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZVBzB8egXofbupod@rli9-mobl \
--to=philip.li@intel.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=luc.vanoostenryck@gmail.com \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.