1. 22 4月, 2009 11 次提交
  2. 21 4月, 2009 2 次提交
  3. 17 4月, 2009 3 次提交
  4. 16 4月, 2009 1 次提交
    • A
      powerpc/5200: Bring the legacy fsl_spi_platform_data hooks back · 41240102
      Anton Vorontsov 提交于
      In commit 364fdbc0 ("spi_mpc83xx:
      rework chip selects handling"), I merged activate_cs and deactivate_cs
      hooks into cs_control, but I overlooked that mpc52xx_psc_spi driver
      is using these hooks too. And that resulted in the following build
      failure:
      
      CC      drivers/spi/mpc52xx_psc_spi.o
      drivers/spi/mpc52xx_psc_spi.c: In function 'mpc52xx_psc_spi_do_probe':
      drivers/spi/mpc52xx_psc_spi.c:398: error: 'struct fsl_spi_platform_data'
      has no member named 'activate_cs'
      drivers/spi/mpc52xx_psc_spi.c:399: error: 'struct fsl_spi_platform_data'
      has no member named 'deactivate_cs'
      make[2]: *** [drivers/spi/mpc52xx_psc_spi.o] Error 1
      
      This patch simply adds the legacy hooks back for 2.6.30, and for
      2.6.31 we'll convert the driver to ->cs_control.
      Reported-by: NSubrata Modak <subrata@linux.vnet.ibm.com>
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      41240102
  5. 15 4月, 2009 14 次提交
    • 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
    • L
      Linux 2.6.30-rc2 · 0882e8dd
      Linus Torvalds 提交于
      0882e8dd
    • L
      Merge branch 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel · b897e6fb
      Linus Torvalds 提交于
      * 'drm-intel-next' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel:
        drm/i915: fix scheduling while holding the new active list spinlock
        drm/i915: Allow tiling of objects with bit 17 swizzling by the CPU.
        drm/i915: Correctly set the write flag for get_user_pages in pread.
        drm/i915: Fix use of uninitialized var in 40a5f0de
        drm/i915: indicate framebuffer restore key in SysRq help message
        drm/i915: sync hdmi detection by hdmi identifier with 2D
        drm/i915: Fix a mismerge of the IGD patch (new .find_pll hooks missed)
        drm/i915: Implement batch and ring buffer dumping
      b897e6fb
    • H
      x86 microcode: revert some work_on_cpu · 6f66cbc6
      Hugh Dickins 提交于
      Revert part of af5c820a ("x86: cpumask:
      use work_on_cpu in arch/x86/kernel/microcode_core.c")
      
      That change is causing only one Intel CPU's microcode to be updated e.g.
      microcode: CPU3 updated from revision 0x9 to 0x17, date = 2005-04-22
      where before it announced that also for CPU0 and CPU1 and CPU2.
      
      We cannot use work_on_cpu() in the CONFIG_MICROCODE_OLD_INTERFACE code,
      because Intel's request_microcode_user() involves a copy_from_user() from
      /sbin/microcode_ctl, which therefore needs to be on that CPU at the time.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6f66cbc6
    • S
      drm/i915: fix scheduling while holding the new active list spinlock · 68c84342
      Shaohua Li 提交于
      regression caused by commit 5e118f41:
      i915_gem_object_move_to_inactive() should be called in task context,
      as it calls fput();
      
      Signed-off-by: Shaohua Li<shaohua.li@intel.com>
      [anholt: Add more detail to the comment about the lock break that's added]
      Signed-off-by: NEric Anholt <eric@anholt.net>
      68c84342
    • L
      Merge branch 'core-fixes-for-linus' of... · 610f26e7
      Linus Torvalds 提交于
      Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        lockdep: warn about lockdep disabling after kernel taint, fix
      610f26e7
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · e9de427e
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        fuse: fix "direct_io" private mmap
        fuse: fix argument type in fuse_get_user_pages()
      e9de427e
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2 · 9fc0178c
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:
        nilfs2: fix possible mismatch of sufile counters on recovery
        nilfs2: segment usage file cleanups
        nilfs2: fix wrong accounting and duplicate brelse in nilfs_sufile_set_error
        nilfs2: simplify handling of active state of segments fix
        nilfs2: remove module version
        nilfs2: fix lockdep recursive locking warning on meta data files
        nilfs2: fix lockdep recursive locking warning on bmap
        nilfs2: return f_fsid for statfs2
      9fc0178c
    • L
      Merge branch 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze · 2b6b6d38
      Linus Torvalds 提交于
      * 'fixes-for-linus' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Add missing FILE tag to MAINTAINERS
        microblaze: remove duplicated #include's
        microblaze: struct device - replace bus_id with dev_name()
        microblaze: Simplify copy_thread()
        microblaze: Add TIMESTAMPING constants to socket.h
        microblaze: Add missing empty ftrace.h file
        microblaze: Fix problem with removing zero length files
      2b6b6d38
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 · 3e862dd5
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
        sh: Add in PCI bus for DMA API debugging.
        sh: Pre-allocate a reasonable number of DMA debug entries.
        sh: sh7786: modify usb setup timeout judgment bug.
        MAINTAINERS: Update sh architecture file patterns.
        sh: ap325: use edge control for ov772x camera
        sh: Plug in support for ARCH=sh64 using sh SRCARCH.
        sh: urquell: Fix up address mapping in board comments.
        sh: Add support for DMA API debugging.
        sh: Provide cpumask_of_pcibus() to fix NUMA build.
        sh: urquell: Add board comment
        sh: wire up sys_preadv/sys_pwritev() syscalls.
        sh: sh7785lcr: fix PCI address map for 32-bit mode
        sh: intc: Added resume from hibernation support to the intc
      3e862dd5
    • D
      Fix lpfc_parse_bg_err()'s use of do_div() · 2344b5b6
      David Howells 提交于
      Fix lpfc_parse_bg_err()'s use of do_div().  It should be passing a 64-bit
      variable as the first parameter.  However, since it's only using a 32-bit
      variable, it doesn't need to use do_div() at all, but can instead use the
      division operator.
      
      This deals with the following warnings:
      
          CC      drivers/scsi/lpfc/lpfc_scsi.o
        drivers/scsi/lpfc/lpfc_scsi.c: In function 'lpfc_parse_bg_err':
        drivers/scsi/lpfc/lpfc_scsi.c:1397: warning: comparison of distinct pointer types lacks a cast
        drivers/scsi/lpfc/lpfc_scsi.c:1397: warning: right shift count >= width of type
        drivers/scsi/lpfc/lpfc_scsi.c:1397: warning: passing argument 1 of '__div64_32' from incompatible pointer type
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      2344b5b6
  6. 14 4月, 2009 9 次提交