Skip to content
  1. Dec 14, 2020
    • Alexander Sverdlin's avatar
      MIPS: Octeon: irq: Alloc desc before configuring IRQ · 99fbc70f
      Alexander Sverdlin authored
      
      
      Allocate the IRQ descriptors where necessary before configuring them via
      irq_set_chip_and_handler(). Fixes the following soft lockup:
      
      watchdog: BUG: soft lockup - CPU#5 stuck for 22s! [modprobe:72]
      Modules linked in:
      irq event stamp: 33288
      hardirqs last  enabled at (33287): [<ffffffff8012e680>] restore_partial+0x74/0x150
      hardirqs last disabled at (33288): [<ffffffff8012e9e8>] handle_int+0x128/0x178
      softirqs last  enabled at (33284): [<ffffffff80859c4c>] __do_softirq+0x5c4/0x6d0
      softirqs last disabled at (33279): [<ffffffff80164018>] irq_exit+0xe8/0xf0
      CPU: 5 PID: 72 Comm: modprobe Not tainted 4.19.80-... #1
      $ 0   : 0000000000000000 0000000000000001 0000000000000003 8000000002bdc640
      $ 4   : 0000000000000000 0000000000000000 0000000000000000 0000000000000000
      $ 8   : 0000000000000001 0000000000000001 0000000000000000 ffffffff803076cc
      $12   : 0000000000000000 0000000000000000 ffffffff817f0000 0000000008000000
      $16   : ffffffff80a96d10 ffffffff80a90000 8000000002c41780 8000000002c41788
      $20   : 0000000000000001 ffffffff8013b248 800000008ef28080 ffffffff80bb8700
      $24   : 0000000003bf0000 ffffffff802d0610
      $28   : 800000008ef20000 800000008ef23bd0 0000000000000006 ffffffff8020d6f8
      Hi    : 0000000000000160
      Lo    : 0000000000000014
      epc   : ffffffff8020d72c smp_call_function_many+0x2f4/0x370
      ra    : ffffffff8020d6f8 smp_call_function_many+0x2c0/0x370
      Status: 10008ce3 KX SX UX KERNEL EXL IE
      Cause : 40808000 (ExcCode 00)
      PrId  : 000d900a (Cavium Octeon II)
      CPU: 5 PID: 72 Comm: modprobe Not tainted 4.19.80-... #1
      Stack : ffffffff80ab0000 00000051801c0da0 0000000010000ce0 5e70a8a65518aeac
              5e70a8a65518aeac 0000000000000000 800000008e0cfb48 ffffffff81820000
              800000008e0cfad4 00000000f0ce6f64 0000000000000001 0000000000000000
              ffffffff801ccfb8 0000000000000000 0000000000000000 ffffffff817f0000
              800000008531d840 ffffffff80a90000 fffe000000000000 0000000000000000
              ffffffff80b20000 ffffffffffffffff ffffffff80bb3980 ffffffff80bb3980
              ffffffff80a90000 00000000fffffffe ffffffff8057a760 0000000000000028
              ffffffff80c50028 800000008ef20000 800000008e0cfb40 ffffffff80b20000
              ffffffff80835d6c 0000000000000000 800000008e0cfc78 5e70a8a65518aeac
              ffffffff80a9dbf7 ffffffff80835c2c ffffffff801357a4 ffffffff809bdd50
              ...
      Call Trace:
      [<ffffffff801357a4>] show_stack+0x9c/0x130
      [<ffffffff80835d6c>] dump_stack+0xdc/0x140
      [<ffffffff8023d490>] watchdog_timer_fn+0x3e8/0x478
      [<ffffffff801f43e4>] __hrtimer_run_queues+0x18c/0x6d8
      [<ffffffff801f507c>] hrtimer_interrupt+0x104/0x2e8
      [<ffffffff801391a8>] c0_compare_interrupt+0x60/0x90
      [<ffffffff801d0fcc>] __handle_irq_event_percpu+0xb4/0x4a0
      [<ffffffff801d13ec>] handle_irq_event_percpu+0x34/0x90
      [<ffffffff801d6b24>] handle_percpu_irq+0x9c/0xe0
      [<ffffffff801d01f4>] generic_handle_irq+0x34/0x50
      [<ffffffff80859678>] do_IRQ+0x18/0x28
      [<ffffffff80107548>] plat_irq_dispatch+0x90/0x128
      [<ffffffff8012ea2c>] handle_int+0x16c/0x178
      [<ffffffff8020d72c>] smp_call_function_many+0x2f4/0x370
      [<ffffffff8020d7e8>] smp_call_function+0x40/0xa0
      [<ffffffff8013bc1c>] flush_tlb_mm+0x44/0x140
      [<ffffffff802d50b0>] tlb_flush_mmu+0x38/0x90
      [<ffffffff802d5154>] arch_tlb_finish_mmu+0x4c/0x88
      [<ffffffff802d52bc>] tlb_finish_mmu+0x24/0x50
      [<ffffffff802e0c54>] exit_mmap+0x11c/0x1b8
      [<ffffffff80157bb4>] mmput+0x84/0x138
      [<ffffffff80160ad4>] do_exit+0x314/0xc88
      [<ffffffff801628e0>] do_group_exit+0x48/0xb0
      [<ffffffff80162958>] __wake_up_parent+0x0/0x18
      
      Signed-off-by: default avatarAlexander Sverdlin <alexander.sverdlin@nokia.com>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      99fbc70f
    • Thomas Bogendoerfer's avatar
      MIPS: mm: Add back define for PAGE_SHARED · 41bb1a9b
      Thomas Bogendoerfer authored
      
      
      There are still some drivers using PAGE_SHARED constant so put it back.
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      41bb1a9b
    • Tiezhu Yang's avatar
      MIPS: Select ARCH_KEEP_MEMBLOCK if DEBUG_KERNEL to enable sysfs memblock debug · a8c0f1c6
      Tiezhu Yang authored
      
      
      In the current code, CONFIG_ARCH_KEEP_MEMBLOCK is not set for MIPS arch,
      memblock_discard() will discard memory and reserved arrays if they were
      allocated, select ARCH_KEEP_MEMBLOCK if DEBUG_KERNEL to give a chance to
      track "memory" and "reserved" memblocks after early boot, with this patch,
      we can see the following two sysfs interfaces under DEBUG_FS.
      
      /sys/kernel/debug/memblock/memory
      /sys/kernel/debug/memblock/reserved
      
      Signed-off-by: default avatarTiezhu Yang <yangtiezhu@loongson.cn>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      a8c0f1c6
    • Anders Roxell's avatar
      mips: lib: uncached: fix non-standard usage of variable 'sp' · 5b058973
      Anders Roxell authored
      When building mips tinyconfig with clang the following warning show up:
      
      arch/mips/lib/uncached.c:45:6: warning: variable 'sp' is uninitialized when used here [-Wuninitialized]
              if (sp >= (long)CKSEG0 && sp < (long)CKSEG2)
                  ^~
      arch/mips/lib/uncached.c:40:18: note: initialize the variable 'sp' to silence this warning
              register long sp __asm__("$sp");
                              ^
                               = 0
      1 warning generated.
      
      Rework to make an explicit inline move, instead of the non-standard use
      of specifying registers for local variables. This is what's written
      from the gcc-10 manual [1] about specifying registers for local
      variables:
      
      "6.47.5.2 Specifying Registers for Local Variables
      .................................................
      [...]
      
      "The only supported use for this feature is to specify registers for
      input and output operands when calling Extended 'asm' (*note Extended
      Asm::).  [...]".
      
      [1] https://docs.w3cub.com/gcc~10/local-register-variables
      
      
      Signed-off-by: default avatarAnders Roxell <anders.roxell@linaro.org>
      Reported-by: default avatarNathan Chancellor <natechancellor@gmail.com>
      Reported-by: default avatarNaresh Kamboju <naresh.kamboju@linaro.org>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarThomas Bogendoerfer <tsbogend@alpha.franken.de>
      5b058973
  2. Dec 05, 2020
  3. Dec 04, 2020
  4. Nov 27, 2020
  5. Nov 19, 2020
  6. Nov 18, 2020
  7. Nov 17, 2020
  8. Nov 13, 2020