13 Jan, 2012

1 commit


09 Jan, 2012

1 commit


15 Dec, 2011

1 commit

  • During test of one IB card with guest VM, found that, msi is not
    initialized properly.

    It turns out __write_msi_msg will do nothing if device current_state is
    not PCI_D0. And, that pci device does not have pm_cap in guest VM.

    There is an error in setting of power state to PCI_D0 in
    pci_enable_device(), but error is not returned for this. Following is
    code flow:

    pci_enable_device() --> __pci_enable_device_flags() -->
    do_pci_enable_device() --> pci_set_power_state() -->
    __pci_start_power_transition()

    We have following condition inside __pci_start_power_transition():
    if (platform_pci_power_manageable(dev)) {
    error = platform_pci_set_power_state(dev, state);
    if (!error)
    pci_update_current_state(dev, state);
    } else {
    error = -ENODEV;
    /* Fall back to PCI_D0 if native PM is not supported */
    if (!dev->pm_cap)
    dev->current_state = PCI_D0;
    }

    Here, from platform_pci_set_power_state(), acpi_pci_set_power_state() is
    getting called and that is failing with ENODEV because of following
    condition:

    if (!handle || ACPI_SUCCESS(acpi_get_handle(handle, "_EJ0",&tmp)))
    return -ENODEV;

    Because of that, pci_update_current_state() is not getting called.

    With this patch, if device power state can not be set via
    platform_pci_set_power_state and that device does not have native pm
    support, then PCI device power state will be set to PCI_D0.

    -v2: This also reverts 47e9037ac16637cd7f12b8790ea7ce6680e42168, as it's
    not needed after this change.

    Acked-by: "Rafael J. Wysocki"
    Signed-off-by: Ajaykumar Hotchandani
    Signed-off-by: Yinghai Lu
    Signed-off-by: Jesse Barnes

    Ajaykumar Hotchandani
     

14 Dec, 2011

1 commit

  • Commit 0d52f54e2ef64c189dedc332e680b2eb4a34590a (PCI / ACPI: Make
    acpiphp ignore root bridges using PCIe native hotplug) added code
    that made the acpiphp driver completely ignore PCIe root complexes
    for which the kernel had been granted control of the native PCIe
    hotplug feature by the BIOS through _OSC. Unfortunately, however,
    this was a mistake, because on some systems there were PCI bridges
    supporting PCI (non-PCIe) hotplug under such root complexes and
    those bridges should have been handled by acpiphp.

    For this reason, revert the changes made by the commit mentioned
    above and make register_slot() in drivers/pci/hotplug/acpiphp_glue.c
    avoid registering hotplug slots for PCIe ports that belong to
    root complexes with native PCIe hotplug enabled (which means that
    the BIOS has granted the kernel control of this feature for the
    given root complex). This is reported to address the original
    issue fixed by commit 0d52f54e2ef64c189dedc332e680b2eb4a34590a and
    to work on the system where that commit broke things.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     

06 Dec, 2011

3 commits

  • If the kernel has requested control of the SHPC native hotplug
    feature for a given root bridge, the acpiphp driver should not try
    to handle that root bridge and it should leave it to shpchp.
    Failing to do so causes problems to happen if shpchp is loaded
    and unloaded before loading acpiphp (ACPI-based hotplug won't work
    in that case anyway).

    To address this issue make find_root_bridges() ignore PCI root
    bridges with SHPC native hotplug enabled and make add_bridge()
    return error code if SHPC native hotplug is enabled for the given
    root bridge. This causes acpiphp to refuse to load if SHPC native
    hotplug is enabled for all root bridges and to refuse binding to
    the root bridges with SHPC native hotplug enabled.

    Reviewed-by: Kenji Kaneshige
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     
  • Use non-ordered workqueue for attention button events.

    Attention button events on each slot can be handled asynchronously. So
    we should use non-ordered workqueue. This patch also removes ordered
    workqueue in pciehp as a result.

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Jesse Barnes

    Kenji Kaneshige
     
  • Fix improper workqueue cleanup.

    In the current pciehp, pcied_cleanup() calls destroy_workqueue()
    before calling pcie_port_service_unregister(). This causes kernel oops
    because flush_workqueue() is called in the pcie_port_service_unregister()
    code path after the workqueue was destroyed. So pcied_cleanup() must call
    pcie_port_service_unregister() first before calling destroy_workqueue().

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Jesse Barnes

    Kenji Kaneshige
     

24 Nov, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci:
    PCI hotplug: shpchp: don't blindly claim non-AMD 0x7450 device IDs
    PCI: pciehp: wait 100 ms after Link Training check
    PCI: pciehp: wait 1000 ms before Link Training check
    PCI: pciehp: Retrieve link speed after link is trained
    PCI: Let PCI_PRI depend on PCI
    PCI: Fix compile errors with PCI_ATS and !PCI_IOV
    PCI / ACPI: Make acpiphp ignore root bridges using PCIe native hotplug

    Linus Torvalds
     

15 Nov, 2011

1 commit

  • Previously we claimed device ID 0x7450, regardless of the vendor, which is
    clearly wrong. Now we'll claim that device ID only for AMD.

    I suspect this was just a typo in the original code, but it's possible this
    change will break shpchp on non-7450 AMD bridges. If so, we'll have to fix
    them as we find them.

    Reference: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=638863
    Reported-by: Ralf Jung
    Cc: Joerg Roedel
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     

12 Nov, 2011

2 commits

  • If the port supports Link speeds greater than 5.0 GT/s, we must wait
    for 100 ms after Link training completes before sending configuration
    request.

    Acked-by: Yinghai Lu
    Tested-by: Yinghai Lu
    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Jesse Barnes

    Kenji Kaneshige
     
  • We need to wait for 1000 ms after Data Link Layer Link Active (DLLLA)
    bit reads 1b before sending configuration request. Currently pciehp
    does this wait after checking Link Training (LT) bit. But we need it
    before checking LT bit because LT is still set even after DLLLA bit is
    set on some platforms.

    Acked-by: Yinghai Lu
    Tested-by: Yinghai Lu
    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Jesse Barnes

    Kenji Kaneshige
     

08 Nov, 2011

1 commit

  • During hot plug, board_added will call pciehp_power_on_slot().
    But link speed is updated in pciehp_power_on_slot().

    We should not update link speed there, because that is too early.

    So move the link speed update to pciehp_check_link_status() after making
    sure the link has been trained.

    -v2: fix compile warning that Kenji found.

    Signed-off-by: Yinghai Lu
    Reviewed-by: Kenji Kaneshige
    Tested-by: Kenji Kaneshige
    Signed-off-by: Jesse Barnes

    Yinghai Lu
     

01 Nov, 2011

3 commits

  • These were getting module.h implicitly from device.h but we want
    to clean that up, so we fix it here to avoid things like:

    pci/slot.c: In function ‘pci_hp_create_module_link’:
    pci/slot.c:383: error: ‘module_kset’ undeclared (first use in this function)

    Similarly, rpadlpar_core.c is modular, so add module.h to its includes.

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     
  • They were implicitly getting it from device.h --> module.h but
    we want to clean that up. So add the minimal header for these
    macros.

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     
  • If the kernel has requested control of the PCIe native hotplug
    feature for a given root complex, the acpiphp driver should not try
    to handle that root complex and it should leave it to pciehp.
    Failing to do so causes problems to happen if acpiphp is loaded
    before pciehp on such systems.

    To address this issue make find_root_bridges() ignore PCIe root
    complexes with PCIe native hotplug enabled and make add_bridge()
    return error code if PCIe native hotplug is enabled for the given
    root port. This causes acpiphp to refuse to load if PCIe native
    hotplug is enabled for all complexes and to refuse binding to
    the root complexes with PCIe native hotplug is enabled.

    Acked-by: Kenji Kaneshige
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     

15 Oct, 2011

1 commit

  • I originally submitted a patch to workaround this by pushing all Ejection
    Requests and Device Checks onto the kacpi_hotplug queue.

    http://marc.info/?l=linux-acpi&m=131678270930105&w=2

    The patch is still insufficient in that Bus Checks also need to be added.

    Rather than add all events, including non-PCI-hotplug events, to the
    hotplug queue, mjg suggested that a better approach would be to modify
    the acpiphp driver so only acpiphp events would be added to the
    kacpi_hotplug queue.

    It's a longer patch, but at least we maintain the benefit of having separate
    queues in ACPI. This, of course, is still only a workaround the problem.
    As Bjorn and mjg pointed out, we have to refactor a lot of this code to do
    the right thing but at this point it is a better to have this code working.

    The acpi core places all events on the kacpi_notify queue. When the acpiphp
    driver is loaded and a PCI card with a PCI-to-PCI bridge is removed the
    following call sequence occurs:

    cleanup_p2p_bridge()
    -> cleanup_bridge()
    -> acpi_remove_notify_handler()
    -> acpi_os_wait_events_complete()
    -> flush_workqueue(kacpi_notify_wq)

    which is the queue we are currently executing on and the process will hang.

    Move all hotplug acpiphp events onto the kacpi_hotplug workqueue. In
    handle_hotplug_event_bridge() and handle_hotplug_event_func() we can simply
    push the rest of the work onto the kacpi_hotplug queue and then avoid the
    deadlock.

    Signed-off-by: Prarit Bhargava
    Cc: mjg@redhat.com
    Cc: bhelgaas@google.com
    Cc: linux-acpi@vger.kernel.org
    Signed-off-by: Jesse Barnes

    Prarit Bhargava
     

10 Sep, 2011

1 commit

  • Commit b03e7495a862 ("PCI: Set PCI-E Max Payload Size on fabric")
    introduced a potential NULL pointer dereference in calls to
    pcie_bus_configure_settings due to attempts to access pci_bus self
    variables when the self pointer is NULL.

    To correct this, verify that the self pointer in pci_bus is non-NULL
    before dereferencing it.

    Reported-by: Stanislaw Gruszka
    Signed-off-by: Shyam Iyer
    Signed-off-by: Jon Mason
    Acked-by: Jesse Barnes
    Signed-off-by: Linus Torvalds

    Shyam Iyer
     

20 Aug, 2011

1 commit


03 Aug, 2011

1 commit

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (28 commits)
    ACPI: delete stale reference in kernel-parameters.txt
    ACPI: add missing _OSI strings
    ACPI: remove NID_INVAL
    thermal: make THERMAL_HWMON implementation fully internal
    thermal: split hwmon lookup to a separate function
    thermal: hide CONFIG_THERMAL_HWMON
    ACPI print OSI(Linux) warning only once
    ACPI: DMI workaround for Asus A8N-SLI Premium and Asus A8N-SLI DELUX
    ACPI / Battery: propagate sysfs error in acpi_battery_add()
    ACPI / Battery: avoid acpi_battery_add() use-after-free
    ACPI: introduce "acpi_rsdp=" parameter for kdump
    ACPI: constify ops structs
    ACPI: fix CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS
    ACPI: fix 80 char overflow
    ACPI / Battery: Resolve the race condition in the sysfs_remove_battery()
    ACPI / Battery: Add the check before refresh sysfs in the battery_notify()
    ACPI / Battery: Add the hibernation process in the battery_notify()
    ACPI / Battery: Rename acpi_battery_quirks2 with acpi_battery_quirks
    ACPI / Battery: Change 16-bit signed negative battery current into correct value
    ACPI / Battery: Add the power unit macro
    ...

    Linus Torvalds
     

02 Aug, 2011

1 commit

  • On a given PCI-E fabric, each device, bridge, and root port can have a
    different PCI-E maximum payload size. There is a sizable performance
    boost for having the largest possible maximum payload size on each PCI-E
    device. However, if improperly configured, fatal bus errors can occur.
    Thus, it is important to ensure that PCI-E payloads sends by a device
    are never larger than the MPS setting of all devices on the way to the
    destination.

    This can be achieved two ways:

    - A conservative approach is to use the smallest common denominator of
    the entire tree below a root complex for every device on that fabric.

    This means for example that having a 128 bytes MPS USB controller on one
    leg of a switch will dramatically reduce performances of a video card or
    10GE adapter on another leg of that same switch.

    It also means that any hierarchy supporting hotplug slots (including
    expresscard or thunderbolt I suppose, dbl check that) will have to be
    entirely clamped to 128 bytes since we cannot predict what will be
    plugged into those slots, and we cannot change the MPS on a "live"
    system.

    - A more optimal way is possible, if it falls within a couple of
    constraints:
    * The top-level host bridge will never generate packets larger than the
    smallest TLP (or if it can be controlled independently from its MPS at
    least)
    * The device will never generate packets larger than MPS (which can be
    configured via MRRS)
    * No support of direct PCI-E PCI-E transfers between devices without
    some additional code to specifically deal with that case

    Then we can use an approach that basically ignores downstream requests
    and focuses exclusively on upstream requests. In that case, all we need
    to care about is that a device MPS is no larger than its parent MPS,
    which allows us to keep all switches/bridges to the max MPS supported by
    their parent and eventually the PHB.

    In this case, your USB controller would no longer "starve" your 10GE
    Ethernet and your hotplug slots won't affect your global MPS.
    Additionally, the hotplugged devices themselves can be configured to a
    larger MPS up to the value configured in the hotplug bridge.

    To choose between the two available options, two PCI kernel boot args
    have been added to the PCI calls. "pcie_bus_safe" will provide the
    former behavior, while "pcie_bus_perf" will perform the latter behavior.
    By default, the latter behavior is used.

    NOTE: due to the location of the enablement, each arch will need to add
    calls to this function. This patch only enables x86.

    This patch includes a number of changes recommended by Benjamin
    Herrenschmidt.

    Tested-by: Jordan_Hargrave@dell.com
    Signed-off-by: Jon Mason
    Signed-off-by: Jesse Barnes

    Jon Mason
     

30 Jul, 2011

1 commit

  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    PCI: remove printks about disabled bridge windows
    PCI: fold pci_calc_resource_flags() into decode_bar()
    PCI: treat mem BAR type "11" (reserved) as 32-bit, not 64-bit, BAR
    PCI: correct pcie_set_readrq write size
    PCI: pciehp: change wait time for valid configuration access
    x86/PCI: Preserve existing pci=bfsort whitelist for Dell systems
    PCI: ARI is a PCIe v2 feature
    x86/PCI: quirks: Use pci_dev->revision
    PCI: Make the struct pci_dev * argument of pci_fixup_irqs const.
    PCI hotplug: cpqphp: use pci_dev->vendor
    PCI hotplug: cpqphp: use pci_dev->subsystem_{vendor|device}
    x86/PCI: config space accessor functions should not ignore the segment argument
    PCI: Assign values to 'pci_obff_signal_type' enumeration constants
    x86/PCI: reduce severity of host bridge window conflict warnings
    PCI: enumerate the PCI device only removed out PCI hieratchy of OS when re-scanning PCI
    PCI: PCIe AER: add aer_recover_queue
    x86/PCI: select direct access mode for mmconfig option
    PCI hotplug: Rename is_ejectable which also exists in dock.c

    Linus Torvalds
     

27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

26 Jul, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits)
    fs: Merge split strings
    treewide: fix potentially dangerous trailing ';' in #defined values/expressions
    uwb: Fix misspelling of neighbourhood in comment
    net, netfilter: Remove redundant goto in ebt_ulog_packet
    trivial: don't touch files that are removed in the staging tree
    lib/vsprintf: replace link to Draft by final RFC number
    doc: Kconfig: `to be' -> `be'
    doc: Kconfig: Typo: square -> squared
    doc: Konfig: Documentation/power/{pm => apm-acpi}.txt
    drivers/net: static should be at beginning of declaration
    drivers/media: static should be at beginning of declaration
    drivers/i2c: static should be at beginning of declaration
    XTENSA: static should be at beginning of declaration
    SH: static should be at beginning of declaration
    MIPS: static should be at beginning of declaration
    ARM: static should be at beginning of declaration
    rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check
    Update my e-mail address
    PCIe ASPM: forcedly -> forcibly
    gma500: push through device driver tree
    ...

    Fix up trivial conflicts:
    - arch/arm/mach-ep93xx/dma-m2p.c (deleted)
    - drivers/gpio/gpio-ep93xx.c (renamed and context nearby)
    - drivers/net/r8169.c (just context changes)

    Linus Torvalds
     

23 Jul, 2011

1 commit

  • Naoki Yanagimoto reported that configuration read on some hot-added
    PCIe device returns invalid value. This patch fixes this problem.

    According to the PCIe spec, software must wait for at least 1 second
    to judge if the hot-added device is broken after Data Link Layer State
    Changed Event. This patch changes pciehp driver to wait for 1 second
    after the Data Link Layer State Changed Event is detected before
    initiating a configuration access instead of 100 ms.

    Signed-off-by: Kenji Kaneshige
    Tested-by: Naoki Yanagimoto
    Signed-off-by: Jesse Barnes

    Kenji Kaneshige
     

22 Jul, 2011

3 commits


17 Jul, 2011

1 commit

  • Structs battery_file, acpi_dock_ops, file_operations,
    thermal_cooling_device_ops, thermal_zone_device_ops, kernel_param_ops
    are not changed in runtime. It is safe to make them const.
    register_hotplug_dock_device() was altered to take const "ops" argument
    to respect acpi_dock_ops' const notion.

    Signed-off-by: Vasiliy Kulikov
    Acked-by: Jeff Garzik
    Signed-off-by: Len Brown

    Vasiliy Kulikov
     

10 Jun, 2011

1 commit


08 Jun, 2011

1 commit

  • powerpc has two different ways of matching PCI devices to their
    corresponding OF node (if any) for historical reasons. The ppc64 one
    does a scan looking for matching bus/dev/fn, while the ppc32 one does a
    scan looking only for matching dev/fn on each level in order to be
    agnostic to busses being renumbered (which Linux does on some
    platforms).

    This removes both and instead moves the matching code to the PCI core
    itself. It's the most logical place to do it: when a pci_dev is created,
    we know the parent and thus can do a single level scan for the matching
    device_node (if any).

    The benefit is that all archs now get the matching for free. There's one
    hook the arch might want to provide to match a PHB bus to its device
    node. A default weak implementation is provided that looks for the
    parent device device node, but it's not entirely reliable on powerpc for
    various reasons so powerpc provides its own.

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Michal Simek
    Acked-by: Jesse Barnes

    Benjamin Herrenschmidt
     

12 May, 2011

1 commit


11 May, 2011

1 commit

  • The following patch sets the MaxPayload setting to match the parent
    reading when inserting a PCIE card into a hotplug slot. On our system,
    the upstream bridge is set to 256, but when inserting a card, the card
    setting defaults to 128. As soon as I/O is performed to the card it
    starts receiving errors since the payload size is too small.

    Reviewed-by: Kenji Kaneshige
    Signed-off-by: Jordan Hargrave
    Signed-off-by: Jesse Barnes

    Jordan_Hargrave@Dell.com
     

31 Mar, 2011

1 commit


05 Mar, 2011

1 commit

  • If a device doesn't support power management (pm_cap == 0) but it is
    acpi_pci_power_manageable() because there is a _PS0 method declared for
    it and _EJ0 is also declared for the slot then nobody is going to set
    current_state = PCI_D0 for this device. This is what I think it is
    happening:

    pci_enable_device
    |
    __pci_enable_device_flags
    /* here we do not set current_state because !pm_cap */
    |
    do_pci_enable_device
    |
    pci_set_power_state
    |
    __pci_start_power_transition
    |
    pci_platform_power_transition
    /* platform_pci_power_manageable() calls acpi_pci_power_manageable that
    * returns true */
    |
    platform_pci_set_power_state
    /* acpi_pci_set_power_state gets called and does nothing because the
    * acpi device has _EJ0, see the comment "If the ACPI device has _EJ0,
    * ignore the device" */

    at this point if we refer to the commit message that introduced the
    comment above (10b3dcae0f275e2546e55303d64ddbb58cec7599), it is up to
    the hotplug driver to set the state to D0.
    However AFAICT the pci hotplug driver never does, in fact
    drivers/pci/hotplug/acpiphp_glue.c:register_slot sets the slot flags to
    (SLOT_ENABLED | SLOT_POWEREDON) but it does not set the pci device
    current state to PCI_D0.

    So my proposed fix is also to set current_state = PCI_D0 in
    register_slot.
    Comments are very welcome.

    Signed-off-by: Stefano Stabellini
    Signed-off-by: Jesse Barnes

    Stefano Stabellini
     

11 Jan, 2011

1 commit


24 Dec, 2010

1 commit


12 Nov, 2010

1 commit

  • While testing various randconfigs with ktest.pl, I hit the following panic:

    BUG: unable to handle kernel paging request at f7e54b03
    IP: [] ibmphp_access_ebda+0x101/0x19bb

    Adding printks, I found that the loop that reads the ebda blocks
    can move out of the mapped section.

    ibmphp_access_ebda: start=f7e44c00 size=5120 end=f7e46000
    ibmphp_access_ebda: io_mem=f7e44d80 offset=384
    ibmphp_access_ebda: io_mem=f7e54b03 offset=65283

    The start of the iomap was at f7e44c00 and had a size of 5120,
    making the end f7e46000. We start with an offset of 0x180 or
    384, giving the first read at 0xf7e44d80. Reading that location
    yields 65283, which is much bigger than the 5120 that was allocated
    and makes the next read at f7e54b03 which is outside the mapped area.

    Perhaps this is a bug in the driver, or buggy hardware, but this patch
    is more about not crashing my box on start up and just giving a warning
    if it detects this error.

    This patch at least lets my box boot with just a warning.

    Cc: Chandru Siddalingappa
    Signed-off-by: Steven Rostedt
    Signed-off-by: Jesse Barnes

    Steven Rostedt
     

29 Oct, 2010

1 commit

  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (27 commits)
    x86: allocate space within a region top-down
    x86: update iomem_resource end based on CPU physical address capabilities
    x86/PCI: allocate space from the end of a region, not the beginning
    PCI: allocate bus resources from the top down
    resources: support allocating space within a region from the top down
    resources: handle overflow when aligning start of available area
    resources: ensure callback doesn't allocate outside available space
    resources: factor out resource_clip() to simplify find_resource()
    resources: add a default alignf to simplify find_resource()
    x86/PCI: MMCONFIG: fix region end calculation
    PCI: Add support for polling PME state on suspended legacy PCI devices
    PCI: Export some PCI PM functionality
    PCI: fix message typo
    PCI: log vendor/device ID always
    PCI: update Intel chipset names and defines
    PCI: use new ccflags variable in Makefile
    PCI: add PCI_MSIX_TABLE/PBA defines
    PCI: add PCI vendor id for STmicroelectronics
    x86/PCI: irq and pci_ids patch for Intel Patsburg DeviceIDs
    PCI: OLPC: Only enable PCI configuration type override on XO-1
    ...

    Linus Torvalds
     

23 Oct, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: remove in_workqueue_context()
    workqueue: Clarify that schedule_on_each_cpu is synchronous
    memory_hotplug: drop spurious calls to flush_scheduled_work()
    shpchp: update workqueue usage
    pciehp: update workqueue usage
    isdn/eicon: don't call flush_scheduled_work() from diva_os_remove_soft_isr()
    workqueue: add and use WQ_MEM_RECLAIM flag
    workqueue: fix HIGHPRI handling in keep_working()
    workqueue: add queue_work and activate_work trace points
    workqueue: prepare for more tracepoints
    workqueue: implement flush[_delayed]_work_sync()
    workqueue: factor out start_flush_work()
    workqueue: cleanup flush/cancel functions
    workqueue: implement alloc_ordered_workqueue()

    Fix up trivial conflict in fs/gfs2/main.c as per Tejun

    Linus Torvalds
     

18 Oct, 2010

1 commit

  • * Rename shpchp_wq to shpchp_ordered_wq and add non-ordered shpchp_wq
    which is used instead of the system workqueue. This is to remove
    the use of flush_scheduled_work() which is deprecated and scheduled
    for removal.

    * With cmwq in place, there's no point in creating workqueues lazily.
    Create both shpchp_wq and shpchp_ordered_wq upfront.

    * Include workqueue.h from shpchp.h.

    Signed-off-by: Tejun Heo
    Acked-by: Jesse Barnes

    Tejun Heo