1. 06 10月, 2012 2 次提交
  2. 03 10月, 2012 2 次提交
  3. 19 9月, 2012 2 次提交
  4. 17 9月, 2012 1 次提交
    • R
      MIPS: Malta: Don't crash on spurious interrupt. · e376fdf4
      Ralf Baechle 提交于
      48d480b0 [[MIPS] Malta: Fix off by one bug in interrupt
      handler.] did not take in account that irq_ffs() will also return 0 if for some reason
      the set of pending interrupts happens to be empty.
      
      This is trivial to trigger with a RM5261 CPU module running a 64-bit kernel and results
      in something like the following:
      
      CPU 0 Unable to handle kernel paging request at virtual address 0000000000000000, epc == ffffffff801772d0, ra == ffffffff8017ad24
      Oops[#1]:
      Cpu 0
      $ 0   : 0000000000000000 ffffffff9000a4e0 ffffffff9000a4e0 ffffffff9000a4e0
      $ 4   : ffffffff80592be0 0000000000000000 00000000000000d6 ffffffff80322ed0
      $ 8   : ffffffff805fe538 0000000000000000 ffffffff9000a4e0 ffffffff80590000
      $12   : 00000000000000d6 0000000000000000 ffffffff80600000 ffffffff805fe538
      $16   : 0000000000000000 0000000000000010 ffffffff80592be0 0000000000000010
      $20   : 0000000000000000 0000000000500001 0000000000000000 ffffffff8051e078
      $24   : 0000000000000028 ffffffff803226e8
      $28   : 9800000003828000 980000000382b900 ffffffff8051e060 ffffffff8017ad24
      Hi    : 0000000000000000
      Lo    : 0000006388974000
      epc   : ffffffff801772d0 handle_irq_event_percpu+0x70/0x2f0
          Not tainted
      ra    : ffffffff8017ad24 handle_percpu_irq+0x54/0x88
      Status: 9000a4e2    KX SX UX KERNEL EXL
      Cause : 00808008
      BadVA : 0000000000000000
      PrId  : 000028a0 (Nevada)
      Modules linked in:
      Process init (pid: 1, threadinfo=9800000003828000, task=9800000003827968, tls=0000000077087490)
      Stack : ffffffff80592be0 ffffffff8058d248 0000000000000040 0000000000000000
              ffffffff80613340 0000000000500001 ffffffff805a0000 0000000000000882
              9800000003b89000 ffffffff8017ad24 00000000000000d5 0000000000000010
              ffffffff9000a4e1 ffffffff801769f4 ffffffff9000a4e0 ffffffff801037f8
              0000000000000000 ffffffff80101c44 0000000000000000 ffffffff9000a4e0
              0000000000000000 9000000018000000 90000000180003f9 0000000000000001
              0000000000000000 00000000000000ff 0000000000000018 0000000000000001
              0000000000000001 00000000003fffff 0000000000000020 ffffffff802cf7ac
              ffffffff80208918 000000007fdadf08 ffffffff80612d88 ffffffff9000a4e1
              0000000000000040 0000000000000000 ffffffff80613340 0000000000500001
              ...
      Call Trace:
      [<ffffffff801772d0>] handle_irq_event_percpu+0x70/0x2f0
      [<ffffffff8017ad24>] handle_percpu_irq+0x54/0x88
      [<ffffffff801769f4>] generic_handle_irq+0x44/0x60
      [<ffffffff801037f8>] do_IRQ+0x48/0x70
      [<ffffffff80101c44>] ret_from_irq+0x0/0x4
      [<ffffffff80326170>] serial8250_startup+0x310/0x870
      [<ffffffff8032175c>] uart_startup.part.7+0x9c/0x330
      [<ffffffff80321b4c>] uart_open+0x15c/0x1b0
      [<ffffffff80302034>] tty_open+0x1fc/0x720
      [<ffffffff801bffac>] chrdev_open+0x7c/0x180
      [<ffffffff801b9ab8>] do_dentry_open.isra.14+0x288/0x390
      [<ffffffff801bac5c>] nameidata_to_filp+0x5c/0xc0
      [<ffffffff801ca700>] do_last.isra.33+0x330/0x8f0
      [<ffffffff801caf3c>] path_openat+0xbc/0x440
      [<ffffffff801cb3c8>] do_filp_open+0x38/0xa8
      [<ffffffff801bade4>] do_sys_open+0x124/0x218
      [<ffffffff80110538>] handle_sys+0x118/0x13c
      
      Code: 02d5a825  12800012  02a0b02d <de820000> de850008  0040f809  0220202d  0040a82d  40026000
      ---[ end trace 5d8e7b9a86badd2d ]---
      Kernel panic - not syncing: Fatal exception in interrupt
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      e376fdf4
  5. 14 9月, 2012 1 次提交
    • M
      MIPS: Malta: Remove RTC Data Mode bootstrap breakage · 636221b8
      Maciej W. Rozycki 提交于
       YAMON requires and enforces the RTC Data Mode (Register B, DM bit) to
      binary, that is the bit is set every time the board goes through the
      firmware bootstrap sequence.  Likewise its calendar manipulation commands
      interpret or set the RTC registers unconditionally as binary, never
      actually checking what the value of the DM bit is, under the (correct)
      assumption that it has been previously set, to indicate the binary mode.
      
       A change to Linux a while ago however introduced a platform-specific
      tweak that clears that bit and therefore forces the data mode to BCD.
      This causes clock corruption and misinterpretation that has to be fixed up
      by user-mode tools in system startup scripts as the initial clock is often
      incorrect according to the BCD interpretation forced.
      
       This change removes the hack; a comment included refers to alarm code,
      but even if it was broken at one point by requiring the BCD mode, it
      should have been trivially corrected and even if not, given how rarely the
      alarm feature is used, that was not really a reasonable justification to
      break the system clock that is indeed used by virtually everything.  And
      either way the alarm code has been since fixed anyway.
      Signed-off-by: NMaciej W. Rozycki <macro@codesourcery.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/4336/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      636221b8
  6. 06 9月, 2012 1 次提交
  7. 03 9月, 2012 1 次提交
  8. 27 8月, 2012 2 次提交
  9. 24 8月, 2012 1 次提交
  10. 23 8月, 2012 1 次提交
  11. 17 8月, 2012 12 次提交
    • R
      MIPS: Malta: Delete duplicate PCI fixup. · 16cc2cf6
      Ralf Baechle 提交于
      2ec8663f9c03a96f2c328c7c483603c31d62ad37 (lmo) rsp.
      497e5ff0 (kernel.org) [MIPS: Malta: Move
      PIIX4 PCI fixup to where it belongs.] attempted to move this PCI fixup
      but really only added it at it's new location without deleting the old
      instance.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      16cc2cf6
    • G
      MIPS: ath79: don't hardcode the unavailability of the DSP ASE · 00dc5ce2
      Gabor Juhos 提交于
      The ath79 platform code allows to run a single kernel image on various
      SoCs which are based on the 24Kc and 74Kc cores.  The current code
      explicitely disables the DSP ASE, but that is available in the 74Kc core.
      
      Remove the override in order to let the kernel to detect the availability
      of the DSP ASE at runtime.
      Signed-off-by: NGabor Juhos <juhosg@openwrt.org>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/4222/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      00dc5ce2
    • J
      MIPS: Synchronize MIPS count one CPU at a time · cf9bfe55
      Jayachandran C 提交于
      The current implementation of synchronise_count_{master,slave} blocks
      slave CPUs in early boot until all of them come up. This no longer
      works because blocking a CPU with interrupts off after notifying the
      CPU to be online causes problems with the current kernel.
      
      Specifically, after the workqueue changes
      (commit a08489c5 "Pull workqueue changes from Tejun Heo")
      the CPU_ONLINE notification callback workqueue_cpu_up_callback()
      will hang on wait_for_completion(&idle_rebind.done), if the slave
      CPUs are blocked for synchronize_count_slave().
      
      The changes are to update synchronize_count_{master,slave}() to handle
      one CPU at a time and to call synchronise_count_master() in __cpu_up()
      so that the CPU_ONLINE notification goes out only after the COP0 COUNT
      register is synchronized.
      
      [ralf@linux-mips.org: This matter only to those few platforms which are
      using the cp0 counter as their clocksource which are XLP, XLR and MIPS'
      CMP solution.]
      Signed-off-by: NJayachandran C <jchandra@broadcom.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/4216/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      cf9bfe55
    • F
      MIPS: BCM63xx: Fix SPI message control register handling for BCM6338/6348. · 5a670445
      Florian Fainelli 提交于
      BCM6338 and BCM6348 have a message control register width of 8 bits, instead
      of 16-bits like what the SPI driver assumes right now. Also the SPI message
      type shift value of 14 is actually 6 for these SoCs.
      This resulted in transmit FIFO corruption because we were writing 16-bits
      to an 8-bits wide register, thus spanning on the first byte of the transmit
      FIFO, which had already been filed in bcm63xx_spi_fill_txrx_fifo().
      
      Fix this by passing the message control register width and message type
      shift through platform data back to the SPI driver so that it can use
      it properly.
      Signed-off-by: NFlorian Fainelli <florian@openwrt.org>
      Cc: linux-mips@linux-mips.org
      Cc: grant.likely@secretlab.ca
      Cc: spi-devel-general@lists.sourceforge.net
      Cc: jonas.gorski@gmail.com
      Patchwork: https://patchwork.linux-mips.org/patch/3983/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      5a670445
    • R
      MIPS: Module: Deal with malformed HI16/LO16 relocation sequences. · c54de490
      Ralf Baechle 提交于
      In case a series of R_MIPS_HI16 relocations was not followed by an
      R_MIPS_LO16 relocation we were leaking the hi16 relocation chain.
      Handle that error and return an error.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      c54de490
    • R
      MIPS: Fix race condition in module relocation code. · 861667dc
      Ralf Baechle 提交于
      The relocation code was essentially taken from the 2.4 modutils which
      perform relocation in userspace.  In 2.6 relocation of multiple modules
      may be performed in parallel by the in-kernel loader so the global
      variable mips_hi16_list won't fly anymore.  Fix race by moving it into
      mod_arch_specific.
      
      [ralf@linux-mips.org: folded in Tony's followup fix.  Thanks Tony!]
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: NTony Wu <tung7970@gmail.com>
      Cc:  linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/4189/
      861667dc
    • R
      MIPS: Fix memory leak in error path of HI16/LO16 relocation handling. · d3cac35c
      Ralf Baechle 提交于
      Commit 6f5d2e970452b5c86906adcb8e7ad246f535ba39 (lmo) /
      477c4b07 (kernel.org) [[MIPS: VPE: Free
      relocation chain on error.] fixed the same issue in the vpe loader in 2009
      but back then the same bug in module.c went unfixed.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Reported-by: NAkhilesh Kumar <akhilesh.lxr@gmail.com>
      d3cac35c
    • B
      MIPS: MTX-1: Add udelay to mtx1_pci_idsel · 143ec74e
      Bruno Randolf 提交于
      Without this udelay(1) PCI idsel does not work correctly on the
      "singleboard" (T-Mobile Surfbox) for the MiniPCI device. The result is
      that PCI configuration fails and the MiniPCI card is not detected
      correctly. Instead of
      
      PCI host bridge to bus 0000:00
      pci_bus 0000:00: root bus resource [mem 0x40000000-0x4fffffff]
      pci_bus 0000:00: root bus resource [io  0x1000-0xffff]
      pci 0000:00:03.0: BAR 0: assigned [mem 0x40000000-0x4000ffff]
      pci 0000:00:00.0: BAR 0: assigned [mem 0x40010000-0x40010fff]
      pci 0000:00:00.1: BAR 0: assigned [mem 0x40011000-0x40011fff]
      
      We see only the CardBus device:
      
      PCI host bridge to bus 0000:00
      pci_bus 0000:00: root bus resource [mem 0x40000000-0x4fffffff]
      pci_bus 0000:00: root bus resource [io  0x1000-0xffff]
      pci 0000:00:00.0: BAR 0: assigned [mem 0x40000000-0x40000fff]
      pci 0000:00:00.1: BAR 0: assigned [mem 0x40001000-0x40001fff]
      
      Later the device driver shows this error:
      
      ath5k 0000:00:03.0: cannot remap PCI memory region
      ath5k: probe of 0000:00:03.0 failed with error -5
      
      I assume that the logic chip which usually supresses the signal to the CardBus
      card has some settling time and without the delay it would still let the
      Cardbus interfere with the response from the MiniPCI card.
      
      What I cannot explain is why this behaviour shows up now and not in earlier
      kernel versions before. Maybe older PCI code was slower?
      Signed-off-by: NBruno Randolf <br1@einfach.org>
      Cc: linux-mips@linux-mips.org
      Cc: manuel.lauss@googlemail.com
      Cc: florian@openwrt.org
      Patchwork: https://patchwork.linux-mips.org/patch/4087/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      143ec74e
    • G
      MIPS: ath79: select HAVE_CLK · 94638067
      Gabor Juhos 提交于
      It is needed in order to get rid of the following errors:
      
      arch/mips/ath79/clock.c:353:13: error: redefinition of 'clk_get'
      include/linux/clk.h:281:27: note: previous definition of 'clk_get' was here
      arch/mips/ath79/clock.c:377:5: error: redefinition of 'clk_enable'
      include/linux/clk.h:295:19: note: previous definition of 'clk_enable' was here
      arch/mips/ath79/clock.c:383:6: error: redefinition of 'clk_disable'
      include/linux/clk.h:300:20: note: previous definition of 'clk_disable' was here
      arch/mips/ath79/clock.c:388:15: error: redefinition of 'clk_get_rate'
      include/linux/clk.h:302:29: note: previous definition of 'clk_get_rate' was here
      arch/mips/ath79/clock.c:394:6: error: redefinition of 'clk_put'
      include/linux/clk.h:291:20: note: previous definition of 'clk_put' was here
      Signed-off-by: NGabor Juhos <juhosg@openwrt.org>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/4170/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      94638067
    • G
      MIPS: ath79: Use correct IRQ number for the OHCI controller on AR7240 · 5fb23456
      Gabor Juhos 提交于
      The currently assigned IRQ number to the OHCI controller is incorrect for
      the AR7240 SoC, and that leads to the following error message from the
      OHCI driver:
      
      ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
      ath79-ohci ath79-ohci: Atheros built-in OHCI controller
      ath79-ohci ath79-ohci: new USB bus registered, assigned bus number 1
      ath79-ohci ath79-ohci: irq 14, io mem 0x1b000000
      hub 1-0:1.0: USB hub found
      hub 1-0:1.0: 1 port detected
      usb 1-1: new full-speed USB device number 2 using ath79-ohci
      ath79-ohci ath79-ohci: Unlink after no-IRQ?  Controller is probably using the wrong IRQ.
      
      Fix this by using the correct IRQ number.
      Signed-off-by: NGabor Juhos <juhosg@openwrt.org>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/4168/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      5fb23456
    • G
      MIPS: ath79: Fix number of GPIO lines for AR724[12] · b4da14ab
      Gabor Juhos 提交于
      The AR724[12] SoCs have more GPIO lines than the AR7240.
      Signed-off-by: NGabor Juhos <juhosg@openwrt.org>
      Cc: Cc: linux-mips@linux-mips.org
      Patchwork: https://http://patchwork.linux-mips.org/patch/4167/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      b4da14ab
    • D
      MIPS: Octeon: Fix broken interrupt controller code. · 87161ccd
      David Daney 提交于
      Since 3.6.0-rc1,  We are getting many messages like:
      
      WARNING: at kernel/irq/irqdomain.c:444 irq_domain_associate_many+0x23c/0x260()
      Modules linked in:
      Call Trace:
      [<ffffffff814cb698>] dump_stack+0x8/0x34
      [<ffffffff81133d00>] warn_slowpath_common+0x78/0xa8
      [<ffffffff81187e44>] irq_domain_associate_many+0x23c/0x260
      [<ffffffff81187f38>] irq_create_mapping+0xd0/0x220
      [<ffffffff81188104>] irq_create_of_mapping+0x7c/0x158
      [<ffffffff813e5f08>] irq_of_parse_and_map+0x28/0x40
      .
      .
      .
      
      Both the CIU and GPIO interrupt domains were somewhat screwed up.
      
      For the CIU domain, we need to call irq_domain_associate() for each of
      the preassigned irq numbers.  For the GPIO domain, we were applying
      the register bit offset in octeon_irq_gpio_xlat, but it should be done
      in octeon_irq_gpio_map instead.
      
      Also: Reserve all 8 'core' irqs for the 'core' irq_chip so that they
      don't get used by the other domains.  Remove unused OCTEON_IRQ_*
      symbols.
      Signed-off-by: NDavid Daney <david.daney@cavium.com>
      Cc: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/4190/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      87161ccd
  12. 15 8月, 2012 1 次提交
  13. 02 8月, 2012 1 次提交
  14. 01 8月, 2012 8 次提交
  15. 31 7月, 2012 2 次提交
  16. 27 7月, 2012 1 次提交
    • J
      posix_types.h: Cleanup stale __NFDBITS and related definitions · 8ded2bbc
      Josh Boyer 提交于
      Recently, glibc made a change to suppress sign-conversion warnings in
      FD_SET (glibc commit ceb9e56b3d1).  This uncovered an issue with the
      kernel's definition of __NFDBITS if applications #include
      <linux/types.h> after including <sys/select.h>.  A build failure would
      be seen when passing the -Werror=sign-compare and -D_FORTIFY_SOURCE=2
      flags to gcc.
      
      It was suggested that the kernel should either match the glibc
      definition of __NFDBITS or remove that entirely.  The current in-kernel
      uses of __NFDBITS can be replaced with BITS_PER_LONG, and there are no
      uses of the related __FDELT and __FDMASK defines.  Given that, we'll
      continue the cleanup that was started with commit 8b3d1cda
      ("posix_types: Remove fd_set macros") and drop the remaining unused
      macros.
      
      Additionally, linux/time.h has similar macros defined that expand to
      nothing so we'll remove those at the same time.
      Reported-by: NJeff Law <law@redhat.com>
      Suggested-by: NLinus Torvalds <torvalds@linux-foundation.org>
      CC: <stable@vger.kernel.org>
      Signed-off-by: NJosh Boyer <jwboyer@redhat.com>
      [ .. and fix up whitespace as per akpm ]
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8ded2bbc
  17. 25 7月, 2012 1 次提交