1. 22 4月, 2009 1 次提交
    • A
      fsl_rio: Pass the proper device to dma mapping routines · 0dbbbf1a
      Anton Vorontsov 提交于
      The driver should pass a device that specifies internal DMA ops, but
      currently NULL pointer is passed, therefore following bug appears
      during boot up:
      
        ------------[ cut here ]------------
        Kernel BUG at c0018a7c [verbose debug info unavailable]
        Oops: Exception in kernel mode, sig: 5 [#1]
        [...]
        NIP [c0018a7c] fsl_rio_doorbell_init+0x34/0x60
        LR [c0018a70] fsl_rio_doorbell_init+0x28/0x60
        Call Trace:
        [ef82bda0] [c0018a70] fsl_rio_doorbell_init+0x28/0x60 (unreliable)
        [ef82bdc0] [c0019160] fsl_rio_setup+0x6b8/0x84c
        [ef82be20] [c02d28ac] fsl_of_rio_rpn_probe+0x30/0x50
        [ef82be40] [c0234f20] of_platform_device_probe+0x5c/0x84
        [...]
        ---[ end trace 561bb236c800851f ]---
      
      This patch fixes the issue.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      0dbbbf1a
  2. 15 4月, 2009 4 次提交
    • S
      powerpc: pseries/dtl.c should include asm/firmware.h · b71a0c29
      Sachin Sant 提交于
      A randconfig build on powerpc failed with:
      
      dtl.c: In function 'dtl_init':
      dtl.c:238: error: implicit declaration of function 'firmware_has_feature'
      dtl.c:238: error: 'FW_FEATURE_SPLPAR' undeclared (first use in this function)
      
      - We need firmware.h for these definitions.
      Signed-off-by: NSachin Sant <sachinp@in.ibm.com>
      Signed-off-by: NJeremy Kerr <jk@ozlabs.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      b71a0c29
    • P
      powerpc: Fix data-corrupting bug in __futex_atomic_op · 306a8288
      Paul Mackerras 提交于
      Richard Henderson pointed out that the powerpc __futex_atomic_op has a
      bug: it will write the wrong value if the stwcx. fails and it has to
      retry the lwarx/stwcx. loop, since 'oparg' will have been overwritten
      by the result from the first time around the loop.  This happens
      because it uses the same register for 'oparg' (an input) as it uses
      for the result.
      
      This fixes it by using separate registers for 'oparg' and 'ret'.
      
      Cc: stable@kernel.org
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      306a8288
    • M
      powerpc/pseries: Set error_state to pci_channel_io_normal in eeh_report_reset() · c58dc575
      Mike Mason 提交于
      While adding native EEH support to Emulex and Qlogic drivers, it was
      discovered that dev->error_state was set to pci_io_channel_normal too
      late in the recovery process. These drivers rely on error_state to
      determine if they can access the device in their slot_reset callback,
      thus error_state needs to be set to pci_io_channel_normal in
      eeh_report_reset(). Below is a detailed explanation (courtesy of Richard
      Lary) as to why this is necessary.
      
      Background:
      PCI MMIO or DMA accesses to a frozen slot generate additional EEH
      errors. If the number of additional EEH errors exceeds EEH_MAX_FAILS the
      adapter will be shutdown. To avoid triggering excessive EEH errors and
      an undesirable adapter shutdown, some drivers use the
      pci_channel_offline(dev) wrapper function to return a Boolean value
      based on the value of pci_dev->error_state to determine if PCI MMIO or
      DMA accesses are safe. If the wrapper returns TRUE, drivers must not
      make PCI MMIO or DMA access to their hardware.
      
      The pci_dev structure member error_state reflects one of three values,
      1) pci_channel_io_normal, 2) pci_channel_io_frozen, 3)
      pci_channel_io_perm_failure.  Function pci_channel_offline(dev) returns
      TRUE if error_state is pci_channel_io_frozen or pci_channel_io_perm_failure.
      
      The EEH driver sets pci_dev->error_state to pci_channel_io_frozen at the
      point where the PCI slot is frozen. Currently, the EEH driver restores
      dev->error_state to pci_channel_io_normal in eeh_report_resume() before
      calling the driver's resume callback. However, when the EEH driver calls
      the driver's slot_reset callback() from eeh_report_reset(), it
      incorrectly indicates the error state is still pci_channel_io_frozen.
      
      Waiting until eeh_report_resume() to restore dev->error_state to
      pci_channel_io_normal is too late for Emulex and QLogic FC drivers and
      any other drivers which are designed to use common code paths in these
      two cases: i) those called after the driver's slot_reset callback() and
      ii) those called after the PCI slot is frozen but before the driver's
      slot_reset callback is called. Case i) all driver paths executed to
      reinitialize the hardware after a reset and case ii) all code paths
      executed by driver kernel threads that run asynchronous to the main
      driver thread, such as interrupt handlers and worker threads to process
      driver work queues.
      
      Emulex and QLogic FC drivers are designed with common code paths which
      require that pci_channel_offline(dev) reflect the true state of the
      hardware. The state transitions that the hardware takes from Normal
      Operations to Slot Frozen to Reset to Normal Operations are documented
      in the Power Architecture™ Platform Requirements+ (PAPR+) in Table 75.
      PE State Control.
      
      PAPR defines the following 3 states:
      
      0 -- Not reset, Not EEH stopped, MMIO load/store allowed, DMA allowed
           (Normal Operations)
      1 -- Reset, Not EEH stopped, MMIO load/store disabled, DMA disabled
      2 -- Not reset, EEH stopped, MMIO load/store disabled, DMA disabled
           (Slot Frozen)
      
      An EEH error places the slot in state 2 (Frozen) and the adapter driver
      is notified that an EEH error was detected. If the adapter driver
      returns PCI_ERS_RESULT_NEED_RESET, the EEH driver calls
      eeh_reset_device() to place the slot into state 1 (Reset) and
      eeh_reset_device completes by placing the slot into State 0 (Normal
      Operations). Upon return from eeh_reset_device(), the EEH driver calls
      eeh_report_reset, which then calls the adapter's slot_reset callback. At
      the time the adapter's slot_reset callback is called, the true state of
      the hardware is Normal Operations and should be accurately reflected by
      setting dev->error_state to pci_channel_io_normal.
      
      The current implementation of EEH driver does not do so and requires
      this change to correct this deficiency.
      Signed-off-by: NMike Mason <mmlnx@us.ibm.com>
      Acked-by: NLinas Vepstas <linasvepstas@gmail.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      c58dc575
    • H
      powerpc: Allow 256kB pages with SHMEM · adf213c4
      Hugh Dickins 提交于
      Now that shmem's divisions by zero and SHMEM_MAX_BYTES are fixed,
      let powerpc 256kB pages coexist with CONFIG_SHMEM again.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      adf213c4
  3. 08 4月, 2009 2 次提交
  4. 07 4月, 2009 23 次提交
  5. 06 4月, 2009 10 次提交
    • A
      fsl-diu-fb: Pass the proper device for dma mapping routines · f3791889
      Anton Vorontsov 提交于
      The driver should pass a device that specifies internal DMA ops, but
      currently NULL pointers are passed, and thus following bug pops up:
      
        Freescale DIU driver
        ------------[ cut here ]------------
        kernel BUG at arch/powerpc/include/asm/dma-mapping.h:237!
        Oops: Exception in kernel mode, sig: 5 [#1]
        ...
        NIP [c01658b4] allocate_buf+0x0/0x8
        LR [c0306554] fsl_diu_probe+0x2b4/0x518
        Call Trace:
        [df02be10] [c030638c] fsl_diu_probe+0xec/0x518 (unreliable)
        [df02be60] [c020cdec] of_platform_device_probe+0x5c/0x84
        [df02be80] [c018f5d0] really_probe+0x78/0x1a0
        [df02bea0] [c018f7c0] __driver_attach+0xa4/0xa8
        [df02bec0] [c018ea00] bus_for_each_dev+0x60/0x9c
        [df02bef0] [c018f414] driver_attach+0x24/0x34
        [df02bf00] [c018f168] bus_add_driver+0x12c/0x1cc
        [df02bf20] [c018fbdc] driver_register+0x6c/0x110
        [df02bf30] [c020ccb4] of_register_driver+0x54/0x70
        [df02bf40] [c03d0a50] fsl_diu_init+0x70/0xa4
        ...
      
      This patch fixes the issue.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      f3791889
    • S
      powerpc/pq2fads: Update device tree for use with device-tree-aware u-boot. · 65cc0fa3
      Scott Wood 提交于
      Add aliases, and correct CS0 offset to match how u-boot
      programs it (this was not a problem with cuImage because
      the wrapper would reprogram the localbus to match the device
      tree).
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      65cc0fa3
    • S
      cpm_uart: Disable CPM udbg when re-initing CPM uart, even if not the console. · 4d8107f4
      Scott Wood 提交于
      Previously, if udbg was using the CPM uart, and the normal CPM uart driver
      was enabled, but the console was directed elsewhere, udbg would not be
      stopped prior to initialization.  This resulted in udbg hanging forever
      waiting for the CPM to process a descriptor.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      4d8107f4
    • S
      cpm_uart: Initialize port.dev before it's used. · bd86ef37
      Scott Wood 提交于
      Previously, this caused NULL to sometimes be passed as a device
      to the DMA code.  With recent DMA changes, that now causes a BUG().
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      bd86ef37
    • K
      powerpc: Add support for CoreInt delivery of interrupts on MPIC · d91e4ea7
      Kumar Gala 提交于
      CoreInt provides a mechansim to deliver the IRQ vector directly
      into the core on an interrupt (via the SPR EPR) rather than having
      to go IACK on the PIC.  This is suppose to provide an improvment
      in interrupt latency by reducing the time to get the IRQ vector.
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      d91e4ea7
    • L
      Merge branch 'audit.b62' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current · 0221c81b
      Linus Torvalds 提交于
      * 'audit.b62' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:
        Audit: remove spaces from audit_log_d_path
        audit: audit_set_auditable defined but not used
        audit: incorrect ref counting in audit tree tag_chunk
        audit: Fix possible return value truncation in audit_get_context()
        audit: ignore terminating NUL in AUDIT_USER_TTY messages
        Audit: fix handling of 'strings' with NULL characters
        make the e->rule.xxx shorter in kernel auditfilter.c
        auditsc: fix kernel-doc notation
        audit: EXECVE record - removed bogus newline
      0221c81b
    • L
      Merge branch 'for-next' of git://git.o-hand.com/linux-mfd · 48f286a2
      Linus Torvalds 提交于
      * 'for-next' of git://git.o-hand.com/linux-mfd:
        mfd: fix da903x warning
        mfd: fix MAINTAINERS entry
        mfd: Use the value of the final spin when reading the AUXADC
        mfd: Storage class should be before const qualifier
        mfd: PASIC3: supply clock_rate to DS1WM via driver_data
        mfd: remove DS1WM clock handling
        mfd: remove unused PASIC3 bus_shift field
        pxa/magician: remove deprecated .bus_shift from PASIC3 platform_data
        mfd: convert PASIC3 to use MFD core
        mfd: convert DS1WM to use MFD core
        mfd: Support active high IRQs on WM835x
        mfd: Use bulk read to fill WM8350 register cache
        mfd: remove duplicated #include from pcf50633
      48f286a2
    • L
      Merge branch 'for-linus' of git://repo.or.cz/cris-mirror · ea431793
      Linus Torvalds 提交于
      * 'for-linus' of git://repo.or.cz/cris-mirror:
        CRISv32: Remove extraneous space between -I and the path.
        cris: convert obsolete hw_interrupt_type to struct irq_chip
        BUG to BUG_ON changes
        cpumask: use mm_cpumask() wrapper: cris
        cpumask: Use accessors code.: cris
        cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: cris
      ea431793
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 · 32fb6c17
      Linus Torvalds 提交于
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (140 commits)
        ACPI: processor: use .notify method instead of installing handler directly
        ACPI: button: use .notify method instead of installing handler directly
        ACPI: support acpi_device_ops .notify methods
        toshiba-acpi: remove MAINTAINERS entry
        ACPI: battery: asynchronous init
        acer-wmi: Update copyright notice & documentation
        acer-wmi: Cleanup the failure cleanup handling
        acer-wmi: Blacklist Acer Aspire One
        video: build fix
        thinkpad-acpi: rework brightness support
        thinkpad-acpi: enhanced debugging messages for the fan subdriver
        thinkpad-acpi: enhanced debugging messages for the hotkey subdriver
        thinkpad-acpi: enhanced debugging messages for rfkill subdrivers
        thinkpad-acpi: restrict access to some firmware LEDs
        thinkpad-acpi: remove HKEY disable functionality
        thinkpad-acpi: add new debug helpers and warn of deprecated atts
        thinkpad-acpi: add missing log levels
        thinkpad-acpi: cleanup debug helpers
        thinkpad-acpi: documentation cleanup
        thinkpad-acpi: drop ibm-acpi alias
        ...
      32fb6c17
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 · 45e36c16
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (23 commits)
        sh: sh7785lcr: Map whole PCI address space.
        sh: Fix up DSP context save/restore.
        sh: Fix up number of on-chip DMA channels on SH7091.
        sh: update defconfigs.
        sh: Kill off broken direct-mapped cache mode.
        sh: Wire up ARCH_HAS_DEFAULT_IDLE for cpuidle.
        sh: Add a command line option for disabling I/O trapping.
        sh: Select ARCH_HIBERNATION_POSSIBLE.
        sh: migor: Fix up CEU use flags.
        input: migor_ts: add wakeup support
        rtc: rtc-sh: use set_irq_wake()
        input: sh_keysc: use enable/disable_irq_wake()
        sh: intc: set_irq_wake() support
        sh: intc: install enable, disable and shutdown callbacks
        clocksource: sh_cmt: use remove_irq() and remove clockevent workaround
        sh: ap325 and Migo-R use new sh_mobile_ceu_info flags
        sh: Fix up -Wformat-security whining.
        sh: ap325rxa: Add ov772x support, again.
        sh: Sanitize asm/mmu.h for assembly use.
        sh: Tidy up sh7786 pinmux table.
        ...
      45e36c16