Re: [PATCH] flash_setup should only be built when CONFIG_MTD is enabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 30, 2009 at 05:48:51PM +0200, Florian Fainelli wrote:

> Building flash_setup while CONFIG_MTD is not enabled does work, but
> results in the following oops while booting:
> 
> Bootbus flash: Setting flash for 32MB flash at 0x1dc00000
> Kernel bug detected[#1]:
> Cpu 0
> $ 0   : 0000000000000000 0000000000000010 000000000000003d 0000000000000002
> $ 4   : 0000000000000001 0000000000000000 ffffffffffffffff 0000000000000d52
> $ 8   : 0000000000000d52 000000000000003e 000000000000000a 0000000000000d17
> $12   : 0000000000000031 ffffffff81105e2c 00000000f34c39b5 0000000017da5c01
> $16   : ffffffff813ab588 ffffffff8138b514 0000000000000001 ffffffff814d2390
> $20   : 0000000000000010 0000000000000010 0000000000000000 0000000000000000
> $24   : 000000000931a549 ffffffff8110e68c
> $28   : a800000007828000 a80000000782bf00 0000000000000000 ffffffff8138b594
> Hi    : 0000000000000191
> Lo    : 36978d4fdf254137
> epc   : ffffffff8138b594 0xffffffff8138b594
>     Not tainted
> ra    : ffffffff8138b594 0xffffffff8138b594
> Status: 10008ce3    KX SX UX KERNEL EXL IE
> Cause : 00800024
> PrId  : 000d0601 (Cavium Octeon)
> Modules linked in:
> Process swapper (pid: 1, threadinfo=a800000007828000, task=a800000007825540, tls=0000000000000000)
> Stack : ffffffff813ab580 ffffffff8110d918 0000000007885780 ffffffff81385080
>         ffffffff81385080 ffffffff8116ca10 3135310000000000 0000000000000000
>         0000000000000098 ffffffff81360000 ffffffff81350000 ffffffff813ab588
>         ffffffff813ab5d0 ffffffff81350000 ffffffff814d2390 ffffffff813862e8
>         000000000000ffff 0000000000000000 0000000000000000 0000000000000000
>         0000000000000000 0000000000000000 0000000000000000 0000000000000000
>         0000000000000000 ffffffff81114f38 0000000000000000 0000000000000000
>         0000000000000000 0000000000000000 0000000000000000 0000000000000000
> Call Trace:[<ffffffff8110d918>] 0xffffffff8110d918
> [<ffffffff8116ca10>] 0xffffffff8116ca10
> [<ffffffff813862e8>] 0xffffffff813862e8
> [<ffffffff81114f38>] 0xffffffff81114f38
> 
> This patch makes flash_setup be compiled only when CONFIG_MTD
> which solves issue, the MTD driver then fails to register but this is
> less critical.

I think your code blows up if !CONFIG_MTD_COMPLEX_MAPPINGS and
!CONFIG_MTD_MAP_BANK_WIDTH_1 in which case simple_map_init is defined as:

#define simple_map_init(map) BUG_ON(!map_bankwidth_supported((map)->bankwidth))

bankwidth is 1, so:

static inline int map_bankwidth_supported(int w)
{
        switch (w) {
#ifdef CONFIG_MTD_MAP_BANK_WIDTH_1
        case 1:
#endif
                return 1;
[...]
        default:
                return 0;
        }
}

  Ralf


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux