31 Jul, 2010

19 commits

  • In 2.6.34, we transformed the PCI DMA API into the generic device
    mode. The PCI DMA API is just the wrapper of the DMA API.

    So we don't need HAVE_ARCH_PCI_SET_DMA_MAX_SEGMENT_SIZE or
    HAVE_ARCH_PCI_SET_DMA_SEGMENT_BOUNDARY (which enable architectures to
    have the own implementations). Both haven't been used anyway.

    Signed-off-by: FUJITA Tomonori
    Signed-off-by: Jesse Barnes

    FUJITA Tomonori
     
  • It is a known issue that mmio decoding shall be disabled while doing PCI
    bar sizing. Host bridge and other devices (PCI PIC) shall be excluded for
    certain platforms. This patch mainly comes from Mathew Willcox's
    patch in http://kerneltrap.org/mailarchive/linux-kernel/2007/9/13/258969.

    A new flag bit "mmio_alway_on" is added to pci_dev with the intention that
    devices with their mmio decoding cannot be disabled during BAR sizing shall
    have this bit set, preferrablly in their quirks.

    Without this patch, Intel Moorestown platform graphics unit will be
    corrupted during bar sizing activities.

    Signed-off-by: Jacob Pan
    Signed-off-by: Jesse Barnes

    Jacob Pan
     
  • During suspend on an SMP system, {read,write}_msi_msg_desc() may be
    called to mask and unmask interrupts on a device that is already in a
    reduced power state. At this point memory-mapped registers including
    MSI-X tables are not accessible, and config space may not be fully
    functional either.

    While a device is in a reduced power state its interrupts are
    effectively masked and its MSI(-X) state will be restored when it is
    brought back to D0. Therefore these functions can simply read and
    write msi_desc::msg for devices not in D0.

    Further, read_msi_msg_desc() should only ever be used to update a
    previously written message, so it can always read msi_desc::msg
    and never needs to touch the hardware.

    Tested-by: "Michael Chan"
    Signed-off-by: Ben Hutchings
    Signed-off-by: Jesse Barnes

    Ben Hutchings
     
  • The CONFIG_PCIEASPM option is confusing and potentially dangerous. ASPM is
    a hardware mediated feature rather than one under direct OS control, and
    even if the config option is disabled the system firmware may have turned
    on ASPM on various bits of hardware. This can cause problems later -
    various hardware that claims to support ASPM does a poor job of it and may
    hang or cause other difficulties. The kernel is able to recognise this in
    many cases and disable the ASPM functionality, but only if CONFIG_PCIEASPM
    is enabled.

    Given that in its default configuration this option will either leave the
    hardware as it was originally or disable hardware functionality that may
    cause problems, it should by default y. The only reason to disable it
    ought to be to reduce code size, so make it dependent on CONFIG_EMBEDDED.

    Signed-off-by: Matthew Garrett
    Cc: lrodriguez@atheros.com
    Cc: maximlevitsky@gmail.com
    Signed-off-by: Jesse Barnes

    Matthew Garrett
     
  • I encountered the problem that /proc/bus/pci/XX/YY is not removed even
    after the corresponding device is hot-removed, if the file is still
    being opened. In addtion, accessing this file in this situation causes
    kernel panic (see below).

    Becasue the pci_proc_detach_device() doesn't call remove_proc_entry()
    if struct proc_dir_entry->count > 1, access to /proc/bus/pci/XX/YY
    would refer to struct pci_dev that was already freed.

    Though I don't know why the check for proc_dir_entry->count was added,
    I don't think it is needed. Removing this check fixes the problem.

    Steps to reproduce
    ------------------
    # cd /sys/bus/pci/slots/2/
    # PROC_BUS_PCI_FILE=/proc/bus/pci/`awk -F: '{print $2"/"$3}' < address`.0
    # sleep 10000 < $PROC_BUS_PCI_FILE &
    # echo 0 > power
    # while true; do cat $PROC_BUS_PCI_FILE > /dev/null; done

    Oops Messages
    -------------
    BUG: unable to handle kernel NULL pointer dereference at 00000042
    IP: [] pci_user_read_config_dword+0x65/0xa0
    *pdpt = 000000002185e001 *pde = 0000000476a79067
    Oops: 0000 [#1] SMP
    last sysfs file: /sys/devices/pci0000:00/0000:00:1c.0/0000:10:00.0/local_cpus
    Modules linked in: autofs4 sunrpc cpufreq_ondemand acpi_cpufreq ipv6 dm_mirror dm_region_hash dm_log dm_mod e1000e i2c_i801 i2c_core iTCO_wdt igb sg pcspkr dca iTCO_vendor_support ext4 mbcache jbd2 sd_mod crc_t10dif lpfc mptsas scsi_transport_fc mptscsih mptbase scsi_tgt scsi_transport_sas [last unloaded: microcode]

    Pid: 2997, comm: cat Not tainted 2.6.34-kk #32 SB/PRIMEQUEST 1800E
    EIP: 0060:[] EFLAGS: 00010046 CPU: 19
    EIP is at pci_user_read_config_dword+0x65/0xa0
    EAX: 00000002 EBX: e44f1800 ECX: e144df14 EDX: 155668c7
    ESI: 00000087 EDI: 00000000 EBP: e144df40 ESP: e144df0c
    DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    Process cat (pid: 2997, ti=e144c000 task=e26f2570 task.ti=e144c000)
    Stack:
    c09ceac0 c0570f72 ffffffff 08c57000 00000000 00001000 e44f1800 c05d2404
    e144df40 00001000 00000000 00001000 08c57000 3093ae50 e420cb40 e358d5c0
    c05d2300 fffffffb c054984f e144df9c 00008000 08c57000 e358d5c0 00008000
    Call Trace:
    [] ? security_capable+0x22/0x30
    [] ? proc_bus_pci_read+0x104/0x220
    [] ? proc_bus_pci_read+0x0/0x220
    [] ? proc_reg_read+0x5f/0x90
    [] ? proc_reg_read+0x0/0x90
    [] ? vfs_read+0x9d/0x190
    [] ? audit_syscall_entry+0x204/0x230
    [] ? sys_read+0x41/0x70
    [] ? sysenter_do_call+0x12/0x28
    Code: b4 26 00 00 00 00 b8 20 88 b1 c0 c7 44 24 08 ff ff ff ff e8 3e 52 22 00 f6 83 24 04 00 00 20 75 34 8b 43 08 8d 4c 24 08 8b 53 1c 70 40 89 4c 24 04 89 f9 c7 04 24 04 00 00 00 ff 16 89 c6 f0
    EIP: [] pci_user_read_config_dword+0x65/0xa0 SS:ESP 0068:e144df0c
    CR2: 0000000000000042

    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Jesse Barnes

    Kenji Kaneshige
     
  • Remove unnesessary casts from void*.

    Signed-off-by: Kulikov Vasiliy
    Signed-off-by: Jesse Barnes

    Kulikov Vasiliy
     
  • 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.

    Acked-by: Rafael J. Wysocki
    Signed-off-by: Matthew Garrett
    Signed-off-by: Jesse Barnes

    Matthew Garrett
     
  • Found one PCIe Module with several bridges built-in where a "cold"
    hotadd doesn't work.

    If we end up reassigning bridge windows at hotadd time, and have to loop
    through assigning new ranges, we won't end up enabling the child bridges
    because the first assignment pass already tried to enable them, which
    prevents __pci_bridge_assign_resource from updating the windows.

    So try to move enabling of child bridges to the end, and only do it
    once.

    Signed-off-by: Yinghai Lu
    Signed-off-by: Jesse Barnes

    Yinghai Lu
     
  • Removed check to prevent hotplug of display devices within shpchp.
    Originally this was thought to have been required within the PCI
    Hotplug specification for some legacy devices. However there is
    no such requirement in the most recent revision. The check prevents
    hotplug of not only display devices but also computational GPUs
    which require serviceability.

    Signed-off-by: Praveen Kalamegham
    Signed-off-by: Jesse Barnes

    Praveen Kalamegham
     
  • pciehp_unconfigure_device() should return -EINVAL, not EINVAL.

    Signed-off-by: Praveen Kalamegham
    Signed-off-by: Jesse Barnes

    Praveen Kalamegham
     
  • The aspm code will currently set the configured aspm policy before drivers
    have had an opportunity to indicate that their hardware doesn't support it.
    Unfortunately, putting some hardware in L0 or L1 can result in the hardware
    no longer responding to any requests, even after aspm is disabled. It makes
    more sense to leave aspm policy at the BIOS defaults at initial setup time,
    reconfiguring it after pci_enable_device() is called. This allows the
    driver to blacklist individual devices beforehand.

    Reviewed-by: Kenji Kaneshige
    Signed-off-by: Matthew Garrett
    Signed-off-by: Jesse Barnes

    Matthew Garrett
     
  • Use resource_size_t for MMIO address instead of unsigned long. Otherwise,
    higher 32-bits of MMIO address are cleared unexpectedly in x86-32 PAE.

    Acked-by: Matthew Wilcox
    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Jesse Barnes

    Kenji Kaneshige
     
  • pci_enable_device can fail. In that case, a printed warning would be
    more appropriate.

    Signed-off-by: Justin P. Mattock
    Signed-off-by: Junchang Wang
    Signed-off-by: Jesse Barnes

    Junchang Wang
     
  • Assigning zero where NULL should be used.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jesse Barnes

    Stephen Hemminger
     
  • MSI delivery from on-board ahci controller doesn't work on K8M800. At
    this point, it's unclear whether the culprit is with the ahci
    controller or the host bridge. Given the track record and considering
    the rather minimal impact of MSI, disabling it seems reasonable.

    Signed-off-by: Tejun Heo
    Reported-by: Rainer Hurtado Navarro
    Cc: stable@kernel.org
    Signed-off-by: Jesse Barnes

    Tejun Heo
     
  • In all AMD 780 family northbridges, the vendor ID of the internal
    graphics PCI/PCI bridge reads not as AMD but as that of the mainboard
    vendor, because the hardware actually returns the value of the subsystem
    vendor ID (erratum 18).

    We currently have additional quirk entries for Asus and Acer, but it is
    likely that we will encounter more systems with other vendor IDs.

    Since we do not know in advance all possible vendor IDs, a better way to
    find the device is to declare the quirk on the host bridge, whose ID is
    always correct, and use that device as a stepping stone to find the PCI/
    PCI bridge, if present.

    Reviewed-by: Matthew Wilcox
    Signed-off-by: Clemens Ladisch
    Signed-off-by: Jesse Barnes

    Clemens Ladisch
     
  • The SLOT_REG_RSVDZ_MASK macro is normally used like this:
    slot_reg &= ~SLOT_REG_RSVDZ_MASK;
    The ~ operator has higher precedence than the | operator from inside the
    macro, so it needs parenthesis.

    Reviewed-by: Kenji Kaneshige
    Signed-off-by: Dan Carpenter
    Signed-off-by: Jesse Barnes

    Dan Carpenter
     
  • Some compiler generates following warnings:

    In function 'aer_isr':
    warning: 'e_src.id' may be used uninitialized in this function
    warning: 'e_src.status' may be used uninitialized in this function

    Avoid status flag "int ret" and return constants instead, so that
    gcc sees the return value matching "it is initialized" better.

    Acked-by: Hidetoshi Seto
    Signed-off-by: Linus Torvalds
    Signed-off-by: Hidetoshi Seto
    Signed-off-by: Jesse Barnes

    Linus Torvalds
     
  • This patch (as1388) changes the way the PCI core handles runtime PM
    settings when probing or unbinding drivers. Now the core will make
    sure the device is enabled for runtime PM, with a usage count >= 1,
    when a driver is probed. It does the same when calling a driver's
    remove method.

    If the driver wants to use runtime PM, all it has to do is call
    pm_runtime_pu_noidle() near the end of its probe routine (to cancel
    the core's usage increment) and pm_runtime_get_noresume() near the
    start of its remove routine (to restore the usage count). It does not
    need to mess around with setting the runtime state to enabled,
    disabled, active, or suspended.

    The patch updates e1000e and r8169, the only PCI drivers that already
    use the existing runtime PM interface.

    Signed-off-by: Alan Stern
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Alan Stern
     

29 Jul, 2010

2 commits


28 Jul, 2010

7 commits

  • Acked-by: Mark Brown

    In TPS6507x, depending on the status of DEFDCDC{2,3} pin either
    DEFDCDC{2,3}_LOW or DEFDCDC{2,3}_HIGH register needs to be read or
    programmed to change the output voltage.

    The current driver assumes DEFDCDC{2,3} pins are always tied low
    and thus operates only on DEFDCDC{2,3}_LOW register. This need
    not always be the case (as is found on OMAP-L138 EVM).

    Unfortunately, software cannot read the status of DEFDCDC{2,3} pins.
    So, this information is passed through platform data depending on
    how the board is wired.

    Signed-off-by: Anuj Aggarwal
    Signed-off-by: Sekhar Nori
    Signed-off-by: Liam Girdwood

    Anuj Aggarwal
     
  • When freeing a gpio that has not been exported, gpio_unexport() prints a
    debug message when it should just fall through silently.

    Example spurious message:

    gpio_unexport: gpio0 status -22

    Signed-off-by: Jon Povey
    Cc: David Brownell
    Acked-by: Uwe Kleine-K?nig
    Cc: Gregory Bean
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jon Povey
     
  • The MPC85xx EDAC driver is missing module device aliases, so the driver
    won't load automatically on boot. This patch fixes the issue by adding
    proper MODULE_DEVICE_TABLE() macros.

    Signed-off-by: Anton Vorontsov
    Cc: Doug Thompson
    Cc: Peter Tyser
    Cc: Dave Jiang
    Cc: Kumar Gala
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Vorontsov
     
  • Fix the logic while writing new date/time to the chip. The driver
    incorrectly wrote back register values to different registers and even
    with wrong mask. The patch adds clearing of the VLF register, which
    should be cleared if all date/time values are set.

    Signed-off-by: Rudolf Marek
    Acked-by: Wan ZongShun
    Cc: Martyn Welch
    Cc: Alessandro Zummo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rudolf Marek
     
  • A driver needs to be ready to take an interrupt as soon as it registers
    an interrupt handler. I noticed the following oops when testing kdump:

    ipr: IBM Power RAID SCSI Device Driver version: 2.5.0 (February 11, 2010)
    ibmvscsi 30000002: SRP_VERSION: 16.a
    ibmvscsi 30000002: SRP_VERSION: 16.a
    Unable to handle kernel paging request for data at address 0x00000000
    ...
    pc: c000000004085e34: .tasklet_action+0xf4/0x1dc
    ...
    c000000004086fe4 .__do_softirq+0x16c/0x2c0
    c00000000403138c .call_do_softirq+0x14/0x24
    c00000000400ee14 .do_softirq+0xa0/0x104
    c00000000408690c .irq_exit+0x70/0xd0
    c00000000400f190 .do_IRQ+0x214/0x2a8
    c000000004004804 hardware_interrupt_entry+0x1c/0x98
    --- Exception: 501 (Hardware Interrupt) at c00000000400c544 .raw_local_irq_restore+0x48/0x54
    c00000000465d2a8 ._raw_spin_unlock_irqrestore+0x74/0xa0
    c0000000040e7f00 .__setup_irq+0x2ec/0x3f0
    c0000000040e8198 .request_threaded_irq+0x194/0x22c
    c00000000446d854 .rpavscsi_init_crq_queue+0x284/0x3f0
    c00000000446c764 .ibmvscsi_probe+0x688/0x710
    c00000000402903c .vio_bus_probe+0x37c/0x3e4
    c000000004403f10 .driver_probe_device+0xec/0x1b8
    c000000004404088 .__driver_attach+0xac/0xf4
    c000000004403184 .bus_for_each_dev+0x98/0x104
    c000000004403c98 .driver_attach+0x40/0x60
    c0000000044026f0 .bus_add_driver+0x154/0x324
    c0000000044045d0 .driver_register+0xe8/0x1ac
    c00000000402b2a8 .vio_register_driver+0x54/0x74
    c000000004933ea4 .ibmvscsi_module_init+0x80/0xc0
    c000000004009834 .do_one_initcall+0x98/0x1d8
    c0000000049005b4 .kernel_init+0x27c/0x33c
    c000000004031550 .kernel_thread+0x54/0x70

    srp_task needs to be setup before request_irq. The patch below fixes the oops.

    Signed-off-by: Anton Blanchard
    Acked-by: Brian King
    Signed-off-by: James Bottomley

    Anton Blanchard
     
  • * git://git.infradead.org/users/cbou/battery-2.6.35:
    ds2782_battery: Rename get_current to fix build failure / name conflict

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    s2io: fixing DBG_PRINT() macro
    ath9k: fix dma direction for map/unmap in ath_rx_tasklet
    net: dev_forward_skb should call nf_reset
    net sched: fix race in mirred device removal
    tun: avoid BUG, dump packet on GSO errors
    bonding: set device in RLB ARP packet handler
    wimax/i2400m: Add PID & VID for Intel WiMAX 6250
    ipv6: Don't add routes to ipv6 disabled interfaces.
    net: Fix skb_copy_expand() handling of ->csum_start
    net: Fix corruption of skb csum field in pskb_expand_head() of net/core/skbuff.c
    macvtap: Limit packet queue length
    ixgbe/igb: catch invalid VF settings
    bnx2x: Advance a module version
    bnx2x: Protect statistics ramrod and sequence number
    bnx2x: Protect a SM state change
    wireless: use netif_rx_ni in ieee80211_send_layer2_update

    Linus Torvalds
     

27 Jul, 2010

12 commits

  • In the case of platform_device_add() fail, we should call
    platform_device_put() instead of platform_device_del()

    Signed-off-by: Axel Lin
    Acked-by: Mark Brown
    Signed-off-by: Liam Girdwood

    Axel Lin
     
  • We use voltage selector as an array index for typ_voltages.
    Thus the valid range for voltage selector should be 0..voltages_len-1.

    Signed-off-by: Axel Lin
    Acked-by: Mark Brown
    Acked-by: Linus Walleij
    Signed-off-by: Liam Girdwood

    Axel Lin
     
  • Patch 9e39f7c5b311a306977c5471f9e2ce4c456aa038 changed the
    DBG_PRINT() macro and the if clause was wrongly changed. It means
    that currently all the DBG_PRINT are being printed, flooding the
    kernel log buffer with things like:

    s2io: eth6: Next block at: c0000000b9c90000
    s2io: eth6: In Neterion Tx routine

    Signed-off-by: Breno Leitao
    Acked-by: Sreenivasa Honnur
    Signed-off-by: David S. Miller

    Breno Leitao
     
  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:
    [CPUFREQ] powernow-k8: Limit Pstate transition latency check
    [CPUFREQ] Fix PCC driver error path
    [CPUFREQ] fix double freeing in error path of pcc-cpufreq
    [CPUFREQ] pcc driver should check for pcch method before calling _OSC
    [CPUFREQ] fix memory leak in cpufreq_add_dev
    [CPUFREQ] revert "[CPUFREQ] remove rwsem lock from CPUFREQ_GOV_STOP call (second call site)"

    Linus Torvalds
     
  • * 'upstream' of git://git.linux-mips.org/pub/scm/upstream-linus:
    MIPS: Set io_map_base for several PCI bridges lacking it
    MIPS: Alchemy: Define eth platform devices in the correct order
    MIPS: BCM63xx: Prevent second enet registration on BCM6338
    MIPS: Quit using undefined behavior of ADDU in 64-bit atomic operations.
    MIPS: N32: Define getdents64.
    MIPS: MTX-1: Fix PCI on the MeshCube and related boards
    MIPS: Make init_vdso a subsys_initcall.
    MIPS: "Fix" useless 'init_vdso successfully' message.
    MIPS: PowerTV: Move register setup to before reading registers.
    SOUND: Au1000: Fix section mismatch
    VIDEO: Au1100fb: Fix section mismatch
    VIDEO: PMAGB-B: Fix section mismatch
    VIDEO: PMAG-BA: Fix section mismatch
    NET: declance: Fix section mismatches
    VIDEO. gbefb: Fix section mismatches.

    Linus Torvalds
     
  • Fix error from the last pull request. Making sure we shut the panel off
    is more correct and saves power.

    Signed-off-by: Jesse Barnes
    Signed-off-by: Linus Torvalds

    Jesse Barnes
     
  • David S. Miller
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
    USB: musb: tusb6010: fix compile error with n8x0_defconfig
    USB: FTDI: Add support for the RT System VX-7 radio programming cable
    USB: add quirk for Broadcom BT dongle
    USB: usb-storage: fix initializations of urb fields
    USB: xhci: Set Mult field in endpoint context correctly.
    USB: sisusbvga: Fix for USB 3.0
    USB: adds Artisman USB dongle to list of quirky devices
    USB: xhci: Set EP0 dequeue ptr after reset of configured device.
    USB: Fix USB3.0 Port Speed Downgrade after port reset
    USB: xHCI: Fix another bug in link TRB activation change.
    USB: option: Add support for AMOI Skypephone S2
    USB: New PIDs for Qualcomm gobi 2000 (qcserial)
    USB: ftdi_sio: support for Signalyzer tools based on FTDI chips
    USB: s3c2410_udc: be aware of connected gadget driver
    USB: Expose vendor-specific ACM channel on Nokia 5230
    USB: Add PID for Sierra 250U to drivers/usb/serial/sierra.c
    USB: option: add support for 1da5:4518

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
    serial: fix rs485 for atmel_serial on avr32

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel:
    drm/i915: add pipe A force quirks to i915 driver
    drm/i915: Fix panel fitting regression since 734b4157
    drm/i915: fix deadlock in fb teardown
    drm/i915: don't free non-existent compressed llb on ILK+
    agp/intel: Use the correct mask to detect i830 aperture size.
    drm/i915: disable FBC when more than one pipe is active
    drm/i915: Use the correct scanout alignment for fbcon.
    drm/i915: make sure eDP panel is turned on
    drm/i915: add PANEL_UNLOCK_REGS definition
    drm/i915: Make G4X-style PLL search more permissive
    drm/i915: Clear any existing dither mode prior to enabling spatial dithering
    drm/i915: handle shared framebuffers when flipping
    drm/i915: Explosion following OOM in do_execbuffer.
    gpu/drm/i915: Add a blacklist to omit modeset on LID open

    Linus Torvalds
     
  • We didn't free policy->related_cpus in error path err_unlock_policy.
    This is catched by following kmemleak report:

    unreferenced object 0xffff88022a0b96d0 (size 512):
    comm "modprobe", pid 886, jiffies 4294689177 (age 780.694s)
    hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    backtrace:
    [] create_object+0x186/0x281
    [] kmemleak_alloc+0x60/0xa7
    [] kmem_cache_alloc_node_notrace+0x120/0x142
    [] alloc_cpumask_var_node+0x2c/0xd7
    [] alloc_cpumask_var+0x11/0x13
    [] zalloc_cpumask_var+0xf/0x11
    [] cpufreq_add_dev+0x11f/0x547
    [] sysdev_driver_register+0xc2/0x11d
    [] cpufreq_register_driver+0xcb/0x1b8
    [] 0xffffffffa032e040
    [] do_one_initcall+0x5e/0x15c
    [] sys_init_module+0xa6/0x1e6
    [] system_call_fastpath+0x16/0x1b
    [] 0xffffffffffffffff

    Signed-off-by: Xiaotian Feng
    Cc: Thomas Renninger
    Cc: Prarit Bhargava
    Signed-off-by: Dave Jones

    Xiaotian Feng
     
  • 395913d0b1db37092ea3d9d69b832183b1dd84c5 ("[CPUFREQ] remove rwsem lock
    from CPUFREQ_GOV_STOP call (second call site)") is not needed, because
    there is no rwsem lock in cpufreq_ondemand and cpufreq_conservative
    anymore. Lock should not be released until the work done.

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=1594

    Signed-off-by: Andrej Gelenberg
    Cc: Mathieu Desnoyers
    Cc: Venkatesh Pallipadi
    Signed-off-by: Andrew Morton
    Acked-by: Mathieu Desnoyers
    Signed-off-by: Dave Jones

    Andrej Gelenberg