From: kernel test robot <lkp@intel.com>
To: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Cc: 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: drivers/mtd/ubi/fastmap.c:1028:17: sparse: sparse: incorrect type in assignment (different base types)
Date: Sun, 12 Nov 2023 01:17:53 +0800 [thread overview]
Message-ID: <202311120122.miUV2XBw-lkp@intel.com> (raw)
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/
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
next reply other threads:[~2023-11-11 17:18 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-11 17:17 kernel test robot [this message]
2023-11-12 6:39 ` drivers/mtd/ubi/fastmap.c:1028:17: sparse: sparse: incorrect type in assignment (different base types) Philip Li
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=202311120122.miUV2XBw-lkp@intel.com \
--to=lkp@intel.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--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.