1. 22 3月, 2011 4 次提交
    • N
      PCI: Disable ASPM when _OSC control is not granted for PCIe services · eca67315
      Naga Chumbalkar 提交于
      v3 -> v2: Added text to describe the problem
      v2 -> v1: Split this patch from v1
      v1	: Part of: http://marc.info/?l=linux-pci&m=130042212003242&w=2
      
      Disable ASPM when no _OSC control for PCIe services is granted
      by the BIOS. This is to protect systems with a buggy BIOS that
      did not set the ACPI FADT "ASPM Controls" bit even though the
      underlying HW can't do ASPM.
      
      To turn "on" ASPM the minimum the BIOS needs to do:
      1. Clear the ACPI FADT "ASPM Controls" bit.
      2. Support _OSC appropriately
      
      There is no _OSC Control bit for ASPM. However, we expect the BIOS to
      support _OSC for a Root Bridge that originates a PCIe hierarchy. If this
      is not the case - we are better off not enabling ASPM on that server.
      
      Commit 852972ac (ACPI: Disable ASPM if the
      Platform won't provide _OSC control for PCIe) describes the above scenario.
      To quote verbatim from there:
      [The PCI SIG documentation for the _OSC OS/firmware handshaking interface
      states:
      
      "If the _OSC control method is absent from the scope of a host bridge
      device, then the operating system must not enable or attempt to use any
      features defined in this section for the hierarchy originated by the host
      bridge."
      
      The obvious interpretation of this is that the OS should not attempt to use
      PCIe hotplug, PME or AER - however, the specification also notes that an
      _OSC method is *required* for PCIe hierarchies, and experimental validation
      with An Alternative OS indicates that it doesn't use any PCIe functionality
      if the _OSC method is missing. That arguably means we shouldn't be using
      MSI or extended config space, but right now our problems seem to be limited
      to vendors being surprised when ASPM gets enabled on machines when other
      OSs refuse to do so. So, for now, let's just disable ASPM if the _OSC
      method doesn't exist or refuses to hand over PCIe capability control.]
      Signed-off-by: NNaga Chumbalkar <nagananda.chumbalkar@hp.com>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      eca67315
    • N
      PCI: Changing ASPM policy, via /sys, to POWERSAVE could cause NMIs · bbfa306a
      Naga Chumbalkar 提交于
      v3 -> v2: Modified the text that describes the problem
      v2 -> v1: Returned -EPERM
      v1      : http://marc.info/?l=linux-pci&m=130013194803727&w=2
      
      For servers whose hardware cannot handle ASPM the BIOS ought to set the
      FADT bit shown below:
      In Sec 5.2.9.3 (IA-PC Boot Arch. Flags) of ACPI4.0a Specification, please
      see Table 5-11:
      PCIe ASPM Controls: If set, indicates to OSPM that it must not enable
      OPSM ASPM control on this platform.
      
      However there are shipping servers whose BIOS did not set this bit. (An
      example is the HP ProLiant DL385 G6. A Maintenance BIOS will fix that).
      For such servers even if a call is made via pci_no_aspm(), based on _OSC
      support in the BIOS, it may be too late because the ASPM code may have
      already allocated and filled its "link_list".
      
      So if a user sets the ASPM "policy" to "powersave" via /sys then
      pcie_aspm_set_policy() will run through the "link_list" and re-configure
      ASPM policy on devices that advertise ASPM L0s/L1 capability:
      # echo powersave > /sys/module/pcie_aspm/parameters/policy
      # cat /sys/module/pcie_aspm/parameters/policy
      default performance [powersave]
      
      That can cause NMIs since the hardware doesn't play well with ASPM:
      [ 1651.906015] NMI: PCI system error (SERR) for reason b1 on CPU 0.
      [ 1651.906015] Dazed and confused, but trying to continue
      
      Ideally, the BIOS should have set that FADT bit in the first place but we
      could be more robust - especially given the fact that Windows doesn't
      cause NMIs in the above scenario.
      
      There should be a sanity check to not allow a user to modify ASPM policy
      when aspm_disabled is set.
      Signed-off-by: NNaga Chumbalkar <nagananda.chumbalkar@hp.com>
      Acked-by: NRafael J. Wysocki <rjw@sisk.pl>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      bbfa306a
    • N
      PCI: PCIe links may not get configured for ASPM under POWERSAVE mode · 1a680b7c
      Naga Chumbalkar 提交于
      v3 -> v2: Moved ASPM enabling logic to pci_set_power_state()
      v2 -> v1: Preserved the logic in pci_raw_set_power_state()
      	: Added ASPM enabling logic after scanning Root Bridge
      	: http://marc.info/?l=linux-pci&m=130046996216391&w=2
      v1	: http://marc.info/?l=linux-pci&m=130013164703283&w=2
      
      The assumption made in commit 41cd766b
      (PCI: Don't enable aspm before drivers have had a chance to veto it) that
      pci_enable_device() will result in re-configuring ASPM when aspm_policy is
      POWERSAVE is no longer valid.  This is due to commit
      97c145f7 (PCI: read current power state
      at enable time) which resets dev->current_state to D0. Due to this the
      call to pcie_aspm_pm_state_change() is never made. Note the equality check
      (below) that returns early:
      ./drivers/pci/pci.c: pci_raw_set_pci_power_state()
      546         /* Check if we're already there */
      547         if (dev->current_state == state)
      548                 return 0;
      
      Therefore OSPM never configures the PCIe links for ASPM to turn them "on".
      
      Fix it by configuring ASPM from the pci_enable_device() code path. This
      also allows a driver such as the e1000e networking driver a chance to
      disable ASPM (L0s, L1), if need be, prior to enabling the device. A
      driver may perform this action if the device is known to mis-behave
      wrt ASPM.
      Signed-off-by: NNaga Chumbalkar <nagananda.chumbalkar@hp.com>
      Acked-by: NRafael J. Wysocki <rjw@sisk.pl>
      Cc: Matthew Garrett <mjg59@srcf.ucam.org>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      1a680b7c
    • R
      PCI/ACPI: Report ASPM support to BIOS if not disabled from command line · 8b8bae90
      Rafael J. Wysocki 提交于
      We need to distinguish the situation in which ASPM support is
      disabled from the command line or through .config from the situation
      in which it is disabled, because the hardware or BIOS can't handle
      it.  In the former case we should not report ASPM support to the BIOS
      through ACPI _OSC, but in the latter case we should do that.
      
      Introduce pcie_aspm_support_enabled() that can be used by
      acpi_pci_root_add() to determine whether or not it should report ASPM
      support to the BIOS through _OSC.
      
      Cc: stable@kernel.org
      References: https://bugzilla.kernel.org/show_bug.cgi?id=29722
      References: https://bugzilla.kernel.org/show_bug.cgi?id=20232Reported-and-tested-by: NOrtwin Glück <odi@odi.ch>
      Reviewed-by: NKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Tested-by: NKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org>
      8b8bae90
  2. 21 3月, 2011 6 次提交
  3. 20 3月, 2011 13 次提交
  4. 19 3月, 2011 17 次提交
    • D
      Merge branch 'next' into for-linus · 97eb3f24
      Dmitry Torokhov 提交于
      97eb3f24
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2 · 5bab188a
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:
        nilfs2: move NILFS_SUPER_MAGIC to linux/magic.h
        nilfs2: get rid of nilfs_sb_info structure
        nilfs2: use sb instance instead of nilfs_sb_info struct
        nilfs2: get rid of sc_sbi back pointer
        nilfs2: move log writer onto nilfs object
        nilfs2: move next generation counter into nilfs object
        nilfs2: move s_inode_lock and s_dirty_files into nilfs object
        nilfs2: move parameters on nilfs_sb_info into nilfs object
        nilfs2: move mount options to nilfs object
        nilfs2: record used amount of each checkpoint in checkpoint list
        nilfs2: optimize rec_len functions
        nilfs2: append blocksize info to warnings during loading super blocks
        nilfs2: add compat ioctl
        nilfs2: implement FS_IOC_GETFLAGS/SETFLAGS/GETVERSION
        nilfs2: tighten restrictions on inode flags
        nilfs2: mark S_NOATIME on inodes only if NOATIME attribute is set
        nilfs2: use common file attribute macros
        nilfs2: add free entries count only if clear bit operation succeeded
        nilfs2: decrement inodes count only if raw inode was successfully deleted
      5bab188a
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc · a8c91da5
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (53 commits)
        mmc: dw_mmc: support mmc power control with regulator
        mmc: dw_mmc: fix suspend/resume operation
        mmc: dw_mmc: add quirks for unreliable card detect, and capabilities
        mmc: tmio: fix address in kunmap_atomic() calls
        mmc: core: reset card voltage after power off
        mmc: core: export function mmc_do_release_host()
        mmc: sdio: remember new card RCA when redetecting card
        mmc: dw_mmc: Remove set-but-unused variable.
        mmc: sdhci-esdhc-imx: add card detect on custom GPIO for mx25/35
        mmc: sdhci-esdhc: broken card detection is not a default quirk
        mmc: sdhci-esdhc-imx: add write protect on custom GPIO on mx25/35
        mmc: msm_sdcc: remove needless cache flush after dma_unmap_sg()
        mmc: sh_mmcif: support aggressive clock gating
        mmc: check if mmc cards < 2GB do sector addressing
        mmc: core: comment on why sdio_reset is done at init time
        mmc: dw_mmc: support DDR mode
        mmc: via-sdmmc: Remove set-but-unused variable.
        mmc: cb710: Return err value in cb710_wait_while_busy()
        mmc: sdhci-pci: Remove set-but-unused variable.
        mmc: mxs-mmc: add mmc host driver for i.MX23/28
        ...
      a8c91da5
    • L
      Merge branch 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6 · 26b95cac
      Linus Torvalds 提交于
      * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
        USB: Move runtime PM callbacks to usb_device_pm_ops
      26b95cac
    • L
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300 · 2c1d2470
      Linus Torvalds 提交于
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-mn10300:
        MN10300: Clear ASB2364 peripheral interrupt masks before enabling interrupts
        MN10300: Fix the ASB2364 gdbport UART register defs
        MN10300: Fix ASB2364 FPGA register defs
        MN10300: Select GENERIC_HARDIRQS_NO_DEPRECATED
        MN10300: Select HAVE_GENERIC_HARDIRQS rather than GENERIC_HARDIRQS
        MN10300: Convert ASB2364 FPGA irq_chip to new functions
        MN10300: Convert ipi irq_chip to new functions
        MN10300: Convert serial irq_chip to new functions
        MN10300: Convert cpu irq_chips to new functions
        MN10300: Remove unused mn10300_intc_* functions
        MN10300: Remove stale irq_chip.end - V2
        MN10300: Use clockevents_calc_mult_shift()
        MN10300: Use clocksource_register_hz()
        MN10300: Remove stale code
      2c1d2470
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin · 664322a4
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/vapier/blackfin: (32 commits)
        Blackfin: ip0x: fix unused variable warning
        Blackfin: punt unused HDMA masks
        Blackfin: wire up new syscalls
        Blackfin/ipipe: restore pipeline bits in irqflags
        Blackfin/ipipe: fix deferred pipeline sync for the root stage
        Blackfin/ipipe: upgrade to I-pipe mainline
        Blackfin: cpufreq: fix typos
        Blackfin: enable GENERIC_HARDIRQS_NO_DEPRECATED
        Blackfin: SMP: convert to irq chip functions
        Blackfin: use accessor functions in show_interrupts()
        Blackfin: use proper wrapper functions for modifying irq status
        Blackfin: convert gpio irq_chip to new functions
        Blackfin: convert mac irq_chip to new functions
        Blackfin: convert error irq_chip to new functions
        Blackfin: convert internal irq_chip to new functions
        Blackfin: convert core irq_chip to new functions
        Blackfin: use proper wrappers for irq_desc
        Blackfin: optimize startup code
        Blackfin: SMP: work around anomaly 05000491
        Blackfin: SMP: implement cpu_freq support
        ...
      664322a4
    • R
      USB: Move runtime PM callbacks to usb_device_pm_ops · e1620d59
      Rafael J. Wysocki 提交于
      USB defines usb_device_type pointing to usb_device_pm_ops that
      provides system-wide PM callbacks only and usb_bus_type pointing to
      usb_bus_pm_ops that provides runtime PM callbacks only.  However,
      the USB runtime PM callbacks may be defined in usb_device_pm_ops
      which makes it possible to drop usb_bus_pm_ops and will allow us
      to consolidate the handling of subsystems by the PM core code.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e1620d59
    • L
      Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 · 99759619
      Linus Torvalds 提交于
      * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
        PCI: label: remove #include of ACPI header to avoid warnings
        PCI: label: Fix compilation error when CONFIG_ACPI is unset
        PCI: pre-allocate additional resources to devices only after successful allocation of essential resources.
        PCI: introduce reset_resource()
        PCI: data structure agnostic free list function
        PCI: refactor io size calculation code
        PCI: do not create quirk I/O regions below PCIBIOS_MIN_IO for ICH
        PCI hotplug: acpiphp: set current_state to D0 in register_slot
        PCI: Export ACPI _DSM provided firmware instance number and string name to sysfs
        PCI: add more checking to ICH region quirks
        PCI: aer-inject: Override PCIe AER Mask Registers
        PCI: fix tlan build when CONFIG_PCI is not enabled
        PCI: remove quirk for pre-production systems
        PCI: Avoid potential NULL pointer dereference in pci_scan_bridge
        PCI/lpc: irq and pci_ids patch for Intel DH89xxCC DeviceIDs
        PCI: sysfs: Fix failure path for addition of "vpd" attribute
      99759619
    • L
      Merge branch 'spi/next' of git://git.secretlab.ca/git/linux-2.6 · b061c59c
      Linus Torvalds 提交于
      * 'spi/next' of git://git.secretlab.ca/git/linux-2.6: (34 commits)
        spi/dw_spi: move dw_spi.h into drivers/spi
        spi/dw_spi: Fix missing header
        gpio/langwell: Clear edge bit before handling
        gpio/langwell: Simplify demux loop
        gpio/langwell: Convert irq name space
        gpio/langwell: Fix broken irq_eoi change.
        gpio; Make Intel chipset gpio drivers depend on x86
        gpio/cs5535-gpio: Fix section mismatch
        spi/rtc-{ds1390,ds3234,m41t94}: Use spi_get_drvdata() for SPI devices
        spi/davinci: Support DMA transfers larger than 65535 words
        spi/davinci: Use correct length parameter to dma_map_single calls
        gpio: Use __devexit at necessary places
        gpio: add MODULE_DEVICE_TABLE to pch_gpio and ml_ioh_gpio
        gpio/mcp23s08: support mcp23s17 variant
        of_mmc_spi: add card detect irq support
        spi/omap_mcspi: catch xfers of non-multiple SPI word size
        spi/omap_mcspi: Off-by-one error in finding the right divisor
        gpio/pca953x: Fix wrong pointer type
        spi/pl022: rid dangling labels
        spi: add support for SuperH SPI
        ...
      b061c59c
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm · 99f4065b
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:
        dlm: use alloc_workqueue function
        dlm: increase default hash table sizes
        dlm: record full callback state
      99f4065b
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · f539abec
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
        fs: call security_d_instantiate in d_obtain_alias V2
        lose 'mounting_here' argument in ->d_manage()
        don't pass 'mounting_here' flag to follow_down()
        change the locking order for namespace_sem
        fix deadlock in pivot_root()
        vfs: split off vfsmount-related parts of vfs_kern_mount()
        Some fixes for pstore
        kill simple_set_mnt()
      f539abec
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bcopeland/omfs · 3f6f7e6d
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bcopeland/omfs:
        omfs: make readdir stop when filldir says so
        omfs: merge unlink() and rmdir(), close leak in rename()
        omfs: stop playing silly buggers with omfs_unlink() in ->rename()
        omfs: rename() needs to mark old_inode dirty after ctime update
      3f6f7e6d
    • L
      Merge branch 'linux-next' of git://git.infradead.org/ubifs-2.6 · 8f627a8a
      Linus Torvalds 提交于
      * 'linux-next' of git://git.infradead.org/ubifs-2.6: (25 commits)
        UBIFS: clean-up commentaries
        UBIFS: save 128KiB or more RAM
        UBIFS: allocate orphans scan buffer on demand
        UBIFS: allocate lpt dump buffer on demand
        UBIFS: allocate ltab checking buffer on demand
        UBIFS: allocate scanning buffer on demand
        UBIFS: allocate dump buffer on demand
        UBIFS: do not check data crc by default
        UBIFS: simplify UBIFS Kconfig menu
        UBIFS: print max. index node size
        UBIFS: handle allocation failures in UBIFS write path
        UBIFS: use max_write_size during recovery
        UBIFS: use max_write_size for write-buffers
        UBIFS: introduce write-buffer size field
        UBI: incorporate LEB offset information
        UBIFS: incorporate maximum write size
        UBI: provide LEB offset information
        UBI: incorporate maximum write size
        UBIFS: fix LEB number in printk
        UBIFS: restrict world-writable debugfs files
        ...
      8f627a8a
    • L
      Merge branch 'linux-next' of git://git.infradead.org/ubi-2.6 · fd57ed02
      Linus Torvalds 提交于
      * 'linux-next' of git://git.infradead.org/ubi-2.6:
        UBI: make tests modes dynamic
        UBI: make self-checks dynamic
        UBI: make debugging messages dynamic
        UBI: remove UBI_IO_DEBUG macro
        UBI: kill debugging buffer
        UBI: allocate erase checking buffer on demand
        UBI: allocate write checking buffer on demand
        UBI: always re-read in case of read failures
        UBI: cleanup comments about corrupted PEBs
        UBI: add slab cache for ubi_scan_leb objects
        UBI: use raw mtd read function in debugging code
        UBI: try to reveal buggy MTD drivers
        UBI: add a commentary about allocating VID header buffer on stack
        UBI: cleanup LEB start calculations
        UBI: fix NOR erase preparation quirk
      fd57ed02
    • A
      MAINTAINERS: Add serial · ca749e2a
      Alan Cox 提交于
      Add an entry for serial maintainers.
      Signed-off-by: NAlan Cox <alan@linux.intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ca749e2a
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · d3e458d7
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (308 commits)
        ALSA: sound/pci/asihpi: check adapter index in hpi_ioctl
        ALSA: aloop - Fix possible IRQ lock inversion
        ALSA: sound/core: merge list_del()/list_add_tail() to list_move_tail()
        ALSA: ctxfi - use list_move() instead of list_del()/list_add() combination
        ALSA: firewire - msleep needs delay.h
        ALSA: firewire-lib, firewire-speakers: handle packet queueing errors
        ALSA: firewire-lib: allocate DMA buffer separately
        ALSA: firewire-lib: use no-info SYT for packets without SYT sample
        ALSA: add LaCie FireWire Speakers/Griffin FireWave Surround driver
        ALSA: hda - Remove an unused variable in patch_realtek.c
        ALSA: hda - pin-adc-mux-dmic auto-configuration of 92HD8X codecs
        ALSA: hda - fix digital mic selection in mixer on 92HD8X codecs
        ALSA: hda - Move default input-src selection to init part
        ALSA: hda - Initialize special cases for input src in init phase
        ALSA: ctxfi - Clear input settings before initialization
        ALSA: ctxfi - Fix SPDIF status retrieval
        ALSA: ctxfi - Fix incorrect SPDIF status bit mask
        ALSA: ctxfi - Fix microphone boost codes/comments
        ALSA: atiixp - Fix wrong time-out checks during ac-link reset
        ALSA: intel8x0m: append 'm' to "r_intel8x0"
        ...
      d3e458d7
    • L
      Merge branch 'x86-fixes-for-linus' of... · f2e1fbb5
      Linus Torvalds 提交于
      Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: Flush TLB if PGD entry is changed in i386 PAE mode
        x86, dumpstack: Correct stack dump info when frame pointer is available
        x86: Clean up csum-copy_64.S a bit
        x86: Fix common misspellings
        x86: Fix misspelling and align params
        x86: Use PentiumPro-optimized partial_csum() on VIA C7
      f2e1fbb5