Hi Linus,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   f4d51dffc6c01a9e94650d95ce0104964f8ae822
commit: 11f74023888f4e50fd33d3428ce473a10e1f1969 mtd: parsers: Move BCM47xx 
parser
date:   12 months ago
config: mips-randconfig-s032-20200908 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.2-191-g10164920-dirty
        git checkout 11f74023888f4e50fd33d3428ce473a10e1f1969
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)

>> drivers/mtd/parsers/bcm47xxpart.c:217:21: sparse: sparse: cast to restricted 
>> __le32

# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=11f74023888f4e50fd33d3428ce473a10e1f1969
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 11f74023888f4e50fd33d3428ce473a10e1f1969
vim +217 drivers/mtd/parsers/bcm47xxpart.c

89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10   85  
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30   86  
static int bcm47xxpart_parse(struct mtd_info *master,
b9adf469f8abb8 drivers/mtd/bcm47xxpart.c Brian Norris    2015-12-04   87        
                     const struct mtd_partition **pparts,
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30   88        
                     struct mtd_part_parser_data *data)
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30   89  {
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30   90        
struct mtd_partition *parts;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30   91        
uint8_t i, curr_part = 0;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30   92        
uint32_t *buf;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30   93        
size_t bytes_read;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30   94        
uint32_t offset;
25bad1d3c9f561 drivers/mtd/bcm47xxpart.c Hauke Mehrtens  2013-01-24   95        
uint32_t blocksize = master->erasesize;
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10   96        
int trx_parts[2]; /* Array with indexes of TRX partitions */
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10   97        
int trx_num = 0; /* Number of found TRX partitions */
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07   98        
int possible_nvram_sizes[] = { 0x8000, 0xF000, 0x10000, };
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06   99        
int err;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  100  
16bd87b3a352b5 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-12-08  101        
/*
16bd87b3a352b5 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-12-08  102        
 * Some really old flashes (like AT45DB*) had smaller erasesize-s, but
16bd87b3a352b5 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-12-08  103        
 * partitions were aligned to at least 0x1000 anyway.
16bd87b3a352b5 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-12-08  104        
 */
16bd87b3a352b5 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-12-08  105        
if (blocksize < 0x1000)
16bd87b3a352b5 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-12-08  106        
        blocksize = 0x1000;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  107  
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  108        
/* Alloc */
6396bb221514d2 drivers/mtd/bcm47xxpart.c Kees Cook       2018-06-12  109        
parts = kcalloc(BCM47XXPART_MAX_PARTS, sizeof(struct mtd_partition),
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  110        
                GFP_KERNEL);
99b1d1887fee36 drivers/mtd/bcm47xxpart.c Hauke Mehrtens  2013-10-13  111        
if (!parts)
99b1d1887fee36 drivers/mtd/bcm47xxpart.c Hauke Mehrtens  2013-10-13  112        
        return -ENOMEM;
99b1d1887fee36 drivers/mtd/bcm47xxpart.c Hauke Mehrtens  2013-10-13  113  
5ca1088f10d617 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  114        
buf = kzalloc(BCM47XXPART_BYTES_TO_READ, GFP_KERNEL);
99b1d1887fee36 drivers/mtd/bcm47xxpart.c Hauke Mehrtens  2013-10-13  115        
if (!buf) {
99b1d1887fee36 drivers/mtd/bcm47xxpart.c Hauke Mehrtens  2013-10-13  116        
        kfree(parts);
99b1d1887fee36 drivers/mtd/bcm47xxpart.c Hauke Mehrtens  2013-10-13  117        
        return -ENOMEM;
99b1d1887fee36 drivers/mtd/bcm47xxpart.c Hauke Mehrtens  2013-10-13  118        
}
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  119  
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  120        
/* Parse block by block looking for magics */
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  121        
for (offset = 0; offset <= master->size - blocksize;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  122        
     offset += blocksize) {
2a36a5c30eab9c drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-05  123        
        /* Nothing more in higher memory on BCM47XX (MIPS) */
97f2645f358b41 drivers/mtd/bcm47xxpart.c Masahiro Yamada 2016-08-03  124        
        if (IS_ENABLED(CONFIG_BCM47XX) && offset >= 0x2000000)
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  125        
                break;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  126  
00b79860eb5f72 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-02-26  127        
        if (curr_part >= BCM47XXPART_MAX_PARTS) {
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  128        
                pr_warn("Reached maximum number of partitions, scanning 
stopped!\n");
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  129        
                break;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  130        
        }
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  131  
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  132        
        /* Read beginning of the block */
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  133        
        err = mtd_read(master, offset, BCM47XXPART_BYTES_TO_READ,
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  134        
                       &bytes_read, (uint8_t *)buf);
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  135        
        if (err && !mtd_is_bitflip(err)) {
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  136        
                pr_err("mtd_read error while parsing (offset: 0x%X): %d\n",
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  137        
                       offset, err);
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  138        
                continue;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  139        
        }
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  140  
4f8aaf72287578 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  141        
        /* Magic or small NVRAM at 0x400 */
4f8aaf72287578 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  142        
        if ((buf[0x4e0 / 4] == CFE_MAGIC && buf[0x4e4 / 4] == CFE_MAGIC) ||
4f8aaf72287578 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  143        
            (buf[0x400 / 4] == NVRAM_HEADER)) {
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  144        
                bcm47xxpart_add_part(&parts[curr_part++], "boot",
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  145        
                                     offset, MTD_WRITEABLE);
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  146        
                continue;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  147        
        }
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  148  
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  149        
        /*
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  150        
         * board_data starts with board_id which differs across boards,
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  151        
         * but we can use 'MPFR' (hopefully) magic at 0x100
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  152        
         */
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  153        
        if (buf[0x100 / 4] == BOARD_DATA_MAGIC) {
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  154        
                bcm47xxpart_add_part(&parts[curr_part++], "board_data",
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  155        
                                     offset, MTD_WRITEABLE);
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  156        
                continue;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  157        
        }
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  158  
33094c736cd36a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  159        
        /* Found on Huawei E970 */
33094c736cd36a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  160        
        if (buf[0x000 / 4] == FACTORY_MAGIC) {
33094c736cd36a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  161        
                bcm47xxpart_add_part(&parts[curr_part++], "factory",
33094c736cd36a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  162        
                                     offset, MTD_WRITEABLE);
33094c736cd36a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  163        
                continue;
33094c736cd36a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  164        
        }
33094c736cd36a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  165  
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  166        
        /* POT(TOP) */
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  167        
        if (buf[0x000 / 4] == POT_MAGIC1 &&
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  168        
            (buf[0x004 / 4] & 0xFFFF) == POT_MAGIC2) {
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  169        
                bcm47xxpart_add_part(&parts[curr_part++], "POT", offset,
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  170        
                                     MTD_WRITEABLE);
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  171        
                continue;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  172        
        }
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  173  
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  174        
        /* ML */
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  175        
        if (buf[0x010 / 4] == ML_MAGIC1 &&
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  176        
            buf[0x014 / 4] == ML_MAGIC2) {
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  177        
                bcm47xxpart_add_part(&parts[curr_part++], "ML", offset,
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  178        
                                     MTD_WRITEABLE);
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  179        
                continue;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  180        
        }
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  181  
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  182        
        /* TRX */
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  183        
        if (buf[0x000 / 4] == TRX_MAGIC) {
b522d7b0ebe353 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  184        
                struct trx_header *trx;
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  185        
                uint32_t last_subpart;
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  186        
                uint32_t trx_size;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  187  
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  188        
                if (trx_num >= ARRAY_SIZE(trx_parts))
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  189        
                        pr_warn("No enough space to store another TRX found at 
0x%X\n",
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  190        
                                offset);
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  191        
                else
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  192        
                        trx_parts[trx_num++] = curr_part;
396afe553bd607 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-01-06  193        
                bcm47xxpart_add_part(&parts[curr_part++], "firmware",
396afe553bd607 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-01-06  194        
                                     offset, 0);
396afe553bd607 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-01-06  195  
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  196        
                /*
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  197        
                 * Try to find TRX size. The "length" field isn't fully
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  198        
                 * reliable as it could be decreased to make CRC32 cover
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  199        
                 * only part of TRX data. It's commonly used as checksum
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  200        
                 * can't cover e.g. ever-changing rootfs partition.
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  201        
                 * Use offsets as helpers for assuming min TRX size.
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  202        
                 */
b522d7b0ebe353 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  203        
                trx = (struct trx_header *)buf;
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  204        
                last_subpart = max3(trx->offset[0], trx->offset[1],
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  205        
                                    trx->offset[2]);
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  206        
                trx_size = max(trx->length, last_subpart + blocksize);
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  207  
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  208        
                /*
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  209        
                 * Skip the TRX data. Decrease offset by block size as
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  210        
                 * the next loop iteration will increase it.
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  211        
                 */
237ea0d4762cc1 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2018-04-12  212        
                offset += roundup(trx_size, blocksize) - blocksize;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  213        
                continue;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  214        
        }
020c6bcfbeabee drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  215  
020c6bcfbeabee drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  216        
        /* Squashfs on devices not using TRX */
0b56d2d45e7c27 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-12-16 @217        
        if (le32_to_cpu(buf[0x000 / 4]) == SQUASHFS_MAGIC ||
0b56d2d45e7c27 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-12-16  218        
            buf[0x000 / 4] == SHSQ_MAGIC) {
020c6bcfbeabee drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  219        
                bcm47xxpart_add_part(&parts[curr_part++], "rootfs",
020c6bcfbeabee drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  220        
                                     offset, 0);
020c6bcfbeabee drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  221        
                continue;
024629fdca1bbb drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-08-18  222        
        }
024629fdca1bbb drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-08-18  223  
024629fdca1bbb drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-08-18  224        
        /*
024629fdca1bbb drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-08-18  225        
         * New (ARM?) devices may have NVRAM in some middle block. Last
024629fdca1bbb drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-08-18  226        
         * block will be checked later, so skip it.
024629fdca1bbb drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-08-18  227        
         */
024629fdca1bbb drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-08-18  228        
        if (offset != master->size - blocksize &&
024629fdca1bbb drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-08-18  229        
            buf[0x000 / 4] == NVRAM_HEADER) {
024629fdca1bbb drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-08-18  230        
                bcm47xxpart_add_part(&parts[curr_part++], "nvram",
024629fdca1bbb drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-08-18  231        
                                     offset, 0);
024629fdca1bbb drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-08-18  232        
                continue;
020c6bcfbeabee drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-10-21  233        
        }
f0501e81fbaa51 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  234  
f0501e81fbaa51 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  235        
        /* Read middle of the block */
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  236        
        err = mtd_read(master, offset + 0x8000, 0x4, &bytes_read,
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  237        
                       (uint8_t *)buf);
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  238        
        if (err && !mtd_is_bitflip(err)) {
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  239        
                pr_err("mtd_read error while parsing (offset: 0x%X): %d\n",
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  240        
                       offset, err);
f0501e81fbaa51 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  241        
                continue;
f0501e81fbaa51 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  242        
        }
f0501e81fbaa51 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  243  
f0501e81fbaa51 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  244        
        /* Some devices (ex. WNDR3700v3) don't have a standard 'MPFR' */
f0501e81fbaa51 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  245        
        if (buf[0x000 / 4] == BOARD_DATA_MAGIC2) {
f0501e81fbaa51 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  246        
                bcm47xxpart_add_part(&parts[curr_part++], "board_data",
f0501e81fbaa51 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  247        
                                     offset, MTD_WRITEABLE);
f0501e81fbaa51 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  248        
                continue;
f0501e81fbaa51 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-12-21  249        
        }
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  250        
}
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  251  
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  252        
/* Look for NVRAM at the end of the last block. */
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  253        
for (i = 0; i < ARRAY_SIZE(possible_nvram_sizes); i++) {
00b79860eb5f72 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2014-02-26  254        
        if (curr_part >= BCM47XXPART_MAX_PARTS) {
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  255        
                pr_warn("Reached maximum number of partitions, scanning 
stopped!\n");
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  256        
                break;
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  257        
        }
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  258  
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  259        
        offset = master->size - possible_nvram_sizes[i];
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  260        
        err = mtd_read(master, offset, 0x4, &bytes_read,
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  261        
                       (uint8_t *)buf);
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  262        
        if (err && !mtd_is_bitflip(err)) {
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  263        
                pr_err("mtd_read error while reading (offset 0x%X): %d\n",
36bcc0c9c2bc8f drivers/mtd/bcm47xxpart.c Rafał Miłecki   2015-12-06  264        
                       offset, err);
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  265        
                continue;
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  266        
        }
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  267  
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  268        
        /* Standard NVRAM */
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  269        
        if (buf[0] == NVRAM_HEADER) {
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  270        
                bcm47xxpart_add_part(&parts[curr_part++], "nvram",
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  271        
                                     master->size - blocksize, 0);
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  272        
                break;
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  273        
        }
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  274        
}
91d542f4dcc231 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-03-07  275  
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  276        
kfree(buf);
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  277  
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  278        
/*
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  279        
 * Assume that partitions end at the beginning of the one they are
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  280        
 * followed by.
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  281        
 */
648bdbee5d2cc3 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-01-06  282        
for (i = 0; i < curr_part; i++) {
648bdbee5d2cc3 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-01-06  283        
        u64 next_part_offset = (i < curr_part - 1) ?
648bdbee5d2cc3 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-01-06  284        
                               parts[i + 1].offset : master->size;
648bdbee5d2cc3 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-01-06  285  
648bdbee5d2cc3 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2013-01-06  286        
        parts[i].size = next_part_offset - parts[i].offset;
b522d7b0ebe353 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  287        
}
b522d7b0ebe353 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  288  
b522d7b0ebe353 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  289        
/* If there was TRX parse it now */
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  290        
for (i = 0; i < trx_num; i++) {
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  291        
        struct mtd_partition *trx = &parts[trx_parts[i]];
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  292  
99352afe8f169c drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-06-21  293        
        if (i == bcm47xxpart_bootpartition())
99352afe8f169c drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-06-21  294        
                trx->types = trx_types;
99352afe8f169c drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-06-21  295        
        else
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  296        
                trx->name = "failsafe";
89a0d9a9f1941a drivers/mtd/bcm47xxpart.c Rafał Miłecki   2017-01-10  297        
}
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  298  
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  299        
*pparts = parts;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  300        
return curr_part;
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  301  };
3cf7f1314ed885 drivers/mtd/bcm47xxpart.c Rafał Miłecki   2012-08-30  302  

:::::: The code at line 217 was first introduced by commit
:::::: 0b56d2d45e7c27581ca90f36b4317373f23e7622 mtd: bcm47xxpart: support 
SquashFS with an original magic

:::::: TO: Rafał Miłecki <[email protected]>
:::::: CC: Brian Norris <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

Reply via email to