1. 24 Aug, 2010 7 commits
    • Rafael J. Wysocki's avatar
      PCI: PCIe: Ask BIOS for control of all native services at once · 28eb5f27
      Rafael J. Wysocki authored
      After commit 852972ac (ACPI: Disable
      ASPM if the platform won't provide _OSC control for PCIe) control of
      the PCIe Capability Structure is unconditionally requested by
      acpi_pci_root_add(), which in principle may cause problems to
      happen in two ways.  First, the BIOS may refuse to give control of
      the PCIe Capability Structure if it is not asked for any of the
      _OSC features depending on it at the same time.  Second, the BIOS may
      assume that control of the _OSC features depending on the PCIe
      Capability Structure will be requested in the future and may behave
      incorrectly if that doesn't happen.  For this reason, control of
      the PCIe Capability Structure should always be requested along with
      control of any other _OSC features that may depend on it (ie. PCIe
      native PME, PCIe native hot-plug, PCIe AER).
      
      Rework the PCIe port driver so that (1) it checks which native PCIe
      port services can be enabled, according to the BIOS, and (2) it
      requests control of all these services simultaneously.  In
      particular, this causes pcie_portdrv_probe() to fail if the BIOS
      refuses to grant control of the PCIe Capability Structure, which
      means that no native PCIe port services can be enabled for the PCIe
      Root Complex the given port belongs to.  If that happens, ASPM is
      disabled to avoid problems with mishandling it by the part of the
      PCIe hierarchy for which control of the PCIe Capability Structure
      has not been received.
      
      Make it possible to override this behavior using 'pcie_ports=native'
      (use the PCIe native services regardless of the BIOS response to the
      control request), or 'pcie_ports=compat' (do not use the PCIe native
      services at all).
      
      Accordingly, rework the existing PCIe port service drivers so that
      they don't request control of the services directly.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      28eb5f27
    • Rafael J. Wysocki's avatar
      ACPI/PCI: Negotiate _OSC control bits before requesting them · 75fb60f2
      Rafael J. Wysocki authored
      It is possible that the BIOS will not grant control of all _OSC
      features requested via acpi_pci_osc_control_set(), so it is
      recommended to negotiate the final set of _OSC features with the
      query flag set before calling _OSC to request control of these
      features.
      
      To implement it, rework acpi_pci_osc_control_set() so that the caller
      can specify the mask of _OSC control bits to negotiate and the mask
      of _OSC control bits that are absolutely necessary to it.  Then,
      acpi_pci_osc_control_set() will run _OSC queries in a loop until
      the mask of _OSC control bits returned by the BIOS is equal to the
      mask passed to it.  Also, before running the _OSC request
      acpi_pci_osc_control_set() will check if the caller's required
      control bits are present in the final mask.
      
      Using this mechanism we will be able to avoid situations in which the
      BIOS doesn't grant control of certain _OSC features, because they
      depend on some other _OSC features that have not been requested.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      75fb60f2
    • Rafael J. Wysocki's avatar
      ACPI/PCI: Do not preserve _OSC control bits returned by a query · 2b8fd918
      Rafael J. Wysocki authored
      There is the assumption in acpi_pci_osc_control_set() that it is
      always sufficient to compare the mask of _OSC control bits to be
      requested with the result of an _OSC query where all of the known
      control bits have been checked.  However, in general, that need not
      be the case.  For example, if an _OSC feature A depends on an _OSC
      feature B and control of A, B plus another _OSC feature C is
      requested simultaneously, the BIOS may return A, B, C, while it would
      only return C if A and C were requested without B.
      
      That may result in passing a wrong mask of _OSC control bits to an
      _OSC control request, in which case the BIOS may only grant control
      of a subset of the requested features.  Moreover, acpi_pci_run_osc()
      will return error code if that happens and the caller of
      acpi_pci_osc_control_set() will not know that it's been granted
      control of some _OSC features.  Consequently, the system will
      generally not work as expected.
      
      Apart from this acpi_pci_osc_control_set() always uses the mask
      of _OSC control bits returned by the very first invocation of
      acpi_pci_query_osc(), but that is done with the second argument
      equal to OSC_PCI_SEGMENT_GROUPS_SUPPORT which generally happens
      to affect the returned _OSC control bits.
      
      For these reasons, make acpi_pci_osc_control_set() always check if
      control of the requested _OSC features will be granted before making
      the final control request.  As a result, the osc_control_qry and
      osc_queried members of struct acpi_pci_root are not necessary any
      more, so drop them and remove the remaining code referring to them.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      2b8fd918
    • Rafael J. Wysocki's avatar
      ACPI/PCI: Make acpi_pci_query_osc() return control bits · ab8e8957
      Rafael J. Wysocki authored
      Make acpi_pci_query_osc() use an additional pointer argument to
      return the mask of control bits obtained from the BIOS to the
      caller.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      ab8e8957
    • Rafael J. Wysocki's avatar
      ACPI/PCI: Reorder checks in acpi_pci_osc_control_set() · b879dc4b
      Rafael J. Wysocki authored
      Make acpi_pci_osc_control_set() attempt to find the handle of the
      _OSC object under the given PCI root bridge object after verifying
      that its second argument is correct and that there is a struct
      acpi_pci_root object for the given root bridge handle, which is
      more logical than the old code.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Reviewed-by: default avatarHidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      b879dc4b
    • Rafael J. Wysocki's avatar
      PCI: PCIe: Introduce commad line switch for disabling port services · 79dd9182
      Rafael J. Wysocki authored
      Introduce kernel command line switch pcie_ports= allowing one to
      disable all of the native PCIe port services, so that PCIe ports
      are treated like PCI-to-PCI bridges.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      79dd9182
    • Rafael J. Wysocki's avatar
      PCI: PCIe AER: Introduce pci_aer_available() · f1a7bfaf
      Rafael J. Wysocki authored
      Introduce a function allowing the caller to check whether to try to
      enable PCIe AER.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      f1a7bfaf
  2. 17 Aug, 2010 1 commit
  3. 13 Aug, 2010 18 commits
  4. 12 Aug, 2010 14 commits
    • Ursula Braun's avatar
      ctcm: rename READ/WRITE defines to avoid redefinitions · 3c09e264
      Ursula Braun authored
      READ/WRITE seems to be a bit too generic for defines in a device
      driver. Just rename them to CTCM_READ/CTCM_WRITE to avoid warnings.
      Signed-off-by: default avatarUrsula Braun <ursula.braun@de.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3c09e264
    • Heiko Carstens's avatar
      claw: rename READ/WRITE defines to avoid redefinitions · 319cb083
      Heiko Carstens authored
      READ/WRITE seems to be a bit too generic for defines in a device driver.
      Just rename them to READ_CHANNEL/WRITE_CHANNEL which should suffice.
      
      Fixes this:
      
      In file included from drivers/s390/net/claw.c:93:
      drivers/s390/net/claw.h:78:1: warning: "WRITE" redefined
      In file included from /home2/heicarst/linux-2.6/arch/s390/include/asm/debug.h:12,
                       from drivers/s390/net/claw.c:68:
      include/linux/fs.h:156:1: warning: this is the location of the previous definition
      Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: default avatarUrsula Braun <ursula.braun@de.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      319cb083
    • Linus Torvalds's avatar
      Revert "fsnotify: store struct file not struct path" · 2069601b
      Linus Torvalds authored
      This reverts commit 3bcf3860 (and the
      accompanying commit c1e5c954 "vfs/fsnotify: fsnotify_close can delay
      the final work in fput" that was a horribly ugly hack to make it work at
      all).
      
      The 'struct file' approach not only causes that disgusting hack, it
      somehow breaks pulseaudio, probably due to some other subtlety with
      f_count handling.
      
      Fix up various conflicts due to later fsnotify work.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2069601b
    • Ingo Molnar's avatar
      perf: Add back list_head data types · 88d89da6
      Ingo Molnar authored
      This commit:
      
       de5d9bf6: Move list types from <linux/list.h> to <linux/types.h>.
      
      Moved the list head data types out of list.h, breaking the build.
      Add them to the perf types.h as well.
      
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      88d89da6
    • Ingo Molnar's avatar
      Merge branch 'linus' into perf/urgent · f46a6804
      Ingo Molnar authored
      Merge reason: Fix upstream breakage introduced by:
      
       de5d9bf6: Move list types from <linux/list.h> to <linux/types.h>.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      f46a6804
    • Steve French's avatar
      [NFS] Set CONFIG_KEYS when CONFIG_NFS_USE_KERNEL_DNS is set · 3f432312
      Steve French authored
      Previous patch relied on DNS_RESOLVER setting CONFIG_KEYS
      but needs to be selected in NFS config when using the new
      DNS resolver
      Signed-off-by: default avatarBryan Schumaker <bjschuma@netapp.com>
      CC: David Howells <dhowells@redhat.com>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      3f432312
    • Randy Dunlap's avatar
      V4L/DVB: v4l2-ctrls.c: needs to include slab.h · 2b80163c
      Randy Dunlap authored
      v4l2-ctrls.c needs to include slab.h to prevent build errors:
      
      drivers/media/video/v4l2-ctrls.c:766: error: implicit declaration of function 'kzalloc'
      drivers/media/video/v4l2-ctrls.c:786: error: implicit declaration of function 'kfree'
      drivers/media/video/v4l2-ctrls.c:1528: error: implicit declaration of function 'kmalloc'
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      2b80163c
    • Mauro Carvalho Chehab's avatar
      V4L/DVB: fix Kconfig to depends on VIDEO_IR · 361be7b1
      Mauro Carvalho Chehab authored
      warning: (VIDEO_BT848 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_DEV && PCI && I2C && VIDEO_V4L2 && INPUT || VIDEO_SAA7134 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_DEV && PCI && I2C && INPUT || VIDEO_CX88 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && VIDEO_DEV && PCI && I2C && INPUT || VIDEO_IVTV && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && PCI && I2C && INPUT || VIDEO_CX18 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && DVB_CORE && PCI && I2C && EXPERIMENTAL && INPUT || VIDEO_EM28XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT || VIDEO_TLG2300 && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT && SND && DVB_CORE || VIDEO_CX231XX && MEDIA_SUPPORT && VIDEO_CAPTURE_DRIVERS && VIDEO_V4L2 && V4L_USB_DRIVERS && USB && VIDEO_DEV && I2C && INPUT || DVB_BUDGET_CI && MEDIA_SUPPORT && DVB_CAPTURE_DRIVERS && DVB_CORE && DVB_BUDGET_CORE && I2C && INPUT || DVB_DM1105 && MEDIA_SUPPORT && DVB_CAPTURE_DRIVERS && DVB_CORE && PCI && I2C && INPUT || VIDEO_GO7007 && STAGING && !STAGING_EXCLUDE_BUILD && VIDEO_DEV && PCI && I2C && INPUT && SND || VIDEO_CX25821 && STAGING && !STAGING_EXCLUDE_BUILD && DVB_CORE && VIDEO_DEV && PCI && I2C && INPUT) selects VIDEO_IR which has unmet direct dependencies (IR_CORE)
      Acked-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      361be7b1
    • Mauro Carvalho Chehab's avatar
      V4L/DVB: Fix IR_CORE dependencies · cfec93f7
      Mauro Carvalho Chehab authored
      As pointed by Randy Dunlap <randy.dunlap@oracle.com>:
      > ERROR: "ir_keydown" [drivers/media/video/ir-kbd-i2c.ko] undefined!
      > ERROR: "__ir_input_register" [drivers/media/video/ir-kbd-i2c.ko] undefined!
      > ERROR: "get_rc_map" [drivers/media/video/ir-kbd-i2c.ko] undefined!
      > ERROR: "ir_input_unregister" [drivers/media/video/ir-kbd-i2c.ko] undefined!
      > ERROR: "get_rc_map" [drivers/media/video/cx88/cx88xx.ko] undefined!
      > ERROR: "ir_repeat" [drivers/media/video/cx88/cx88xx.ko] undefined!
      > ERROR: "ir_input_unregister" [drivers/media/video/cx88/cx88xx.ko] undefined!
      > ERROR: "ir_keydown" [drivers/media/video/cx88/cx88xx.ko] undefined!
      > ERROR: "__ir_input_register" [drivers/media/video/cx88/cx88xx.ko] undefined!
      > ERROR: "get_rc_map" [drivers/media/video/bt8xx/bttv.ko] undefined!
      > ERROR: "ir_input_unregister" [drivers/media/video/bt8xx/bttv.ko] undefined!
      > ERROR: "__ir_input_register" [drivers/media/video/bt8xx/bttv.ko] undefined!
      > ERROR: "ir_g_keycode_from_table" [drivers/media/IR/ir-common.ko] undefined!
      >
      >
      > #5101:
      > (.text+0x8306e2): undefined reference to `ir_core_debug'
      > (.text+0x830729): undefined reference to `ir_core_debug'
      > ir-functions.c:(.text+0x830906): undefined reference to `ir_core_debug'
      > (.text+0x8309d8): undefined reference to `ir_g_keycode_from_table'
      > (.text+0x830acf): undefined reference to `ir_core_debug'
      > (.text+0x830b92): undefined reference to `ir_core_debug'
      > (.text+0x830bef): undefined reference to `ir_core_debug'
      > (.text+0x830c6a): undefined reference to `ir_core_debug'
      > (.text+0x830cf7): undefined reference to `ir_core_debug'
      > budget-ci.c:(.text+0x89f5c8): undefined reference to `ir_keydown'
      > budget-ci.c:(.text+0x8a0c58): undefined reference to `get_rc_map'
      > budget-ci.c:(.text+0x8a0c80): undefined reference to `__ir_input_register'
      > budget-ci.c:(.text+0x8a0ee0): undefined reference to `get_rc_map'
      > budget-ci.c:(.text+0x8a11cd): undefined reference to `ir_input_unregister'
      > (.text+0x8a8adb): undefined reference to `ir_input_unregister'
      > dvb-usb-remote.c:(.text+0x8a9188): undefined reference to `get_rc_map'
      > dvb-usb-remote.c:(.text+0x8a91b1): undefined reference to `__ir_input_register'
      > dvb-usb-remote.c:(.text+0x8a9238): undefined reference to `get_rc_map'
      > dib0700_core.c:(.text+0x8b04ca): undefined reference to `ir_keydown'
      > dib0700_devices.c:(.text+0x8b2ea8): undefined reference to `ir_keydown'
      > dib0700_devices.c:(.text+0x8b2ef0): undefined reference to `ir_keydown'
      
      Those breakages seem to be caused by two bad things at IR_CORE Kconfig:
      
      1) cx23885 is using select for IR_CORE;
      2) the dvb-usb and sms dependency for IR_CORE were missing.
      
      While here, allow users to un-select IR.
      Acked-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      cfec93f7
    • Linus Torvalds's avatar
      Merge branch 'io_remap_pfn_range' of git://www.jni.nu/cris · ad41a1e0
      Linus Torvalds authored
      * 'io_remap_pfn_range' of git://www.jni.nu/cris:
        CRIS: Define io_remap_pfn_range as remap_pfn_range
      ad41a1e0
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm · 8357422d
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm: (33 commits)
        dm mpath: support discard
        dm stripe: support discards
        dm: split discard requests on target boundaries
        dm stripe: optimize sector division
        dm stripe: move sector translation to a function
        dm: error return error for discards
        dm delay: support discard
        dm: zero silently drop discards
        dm: use dm_target_offset macro
        dm: factor out max_io_len_target_boundary
        dm: use common __issue_target_request for flush and discard support
        dm: linear support discard
        dm crypt: simplify crypt_ctr
        dm crypt: simplify crypt_config destruction logic
        dm: allow autoloading of dm mod
        dm: rename map_info flush_request to target_request_nr
        dm ioctl: refactor dm_table_complete
        dm snapshot: implement merge
        dm: do not initialise full request queue when bio based
        dm ioctl: make bio or request based device type immutable
        ...
      8357422d
    • Linus Torvalds's avatar
      Merge branch 'hwpoison' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6 · 1021a645
      Linus Torvalds authored
      * 'hwpoison' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6:
        hugetlb: add missing unlock in avoidcopy path in hugetlb_cow()
        hwpoison: rename CONFIG
        HWPOISON, hugetlb: support hwpoison injection for hugepage
        HWPOISON, hugetlb: detect hwpoison in hugetlb code
        HWPOISON, hugetlb: isolate corrupted hugepage
        HWPOISON, hugetlb: maintain mce_bad_pages in handling hugepage error
        HWPOISON, hugetlb: set/clear PG_hwpoison bits on hugepage
        HWPOISON, hugetlb: enable error handling path for hugepage
        hugetlb, rmap: add reverse mapping for hugepage
        hugetlb: move definition of is_vm_hugetlb_page() to hugepage_inline.h
      
      Fix up trivial conflicts in mm/memory-failure.c
      1021a645
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://neil.brown.name/md · 7367f5b0
      Linus Torvalds authored
      * 'for-linus' of git://neil.brown.name/md:
        Further tidyup of raid6 naming in lib/raid6
        Make lib/raid6/test build correctly.
        Rename raid6 files now they're in a 'raid6' directory.
      7367f5b0
    • Linus Torvalds's avatar
      Merge branch 'msm-core' of git://codeaurora.org/quic/kernel/dwalker/linux-msm · ce4327d3
      Linus Torvalds authored
      * 'msm-core' of git://codeaurora.org/quic/kernel/dwalker/linux-msm:
        msm: mmc: Add msm prefix to platform data structure
        msm: trout: Remove extern declaration from source file
        arm: msm: Fix section mismatch in smd.c.
        arm: msm: trout add mmc support
        arm: msm: trout: add trout specific gpio interrupts
        arm: msm: remove unused #include <linux/version.h>
      ce4327d3