23 Dec, 2006

19 commits

  • Fernando Lopez-Lezcano reported frequent scheduling latencies and audio
    xruns starting at the 2.6.18-rt kernel, and those problems persisted all
    until current -rt kernels. The latencies were serious and unjustified by
    system load, often in the milliseconds range.

    After a patient and heroic multi-month effort of Fernando, where he
    tested dozens of kernels, tried various configs, boot options,
    test-patches of mine and provided latency traces of those incidents, the
    following 'smoking gun' trace was captured by him:

    _------=> CPU#
    / _-----=> irqs-off
    | / _----=> need-resched
    || / _---=> hardirq/softirq
    ||| / _--=> preempt-depth
    |||| /
    ||||| delay
    cmd pid ||||| time | caller
    \ / ||||| \ | /
    IRQ_19-1479 1D..1 0us : __trace_start_sched_wakeup (try_to_wake_up)
    IRQ_19-1479 1D..1 0us : __trace_start_sched_wakeup <-5856> (37 0)
    IRQ_19-1479 1D..1 0us : __trace_start_sched_wakeup (c01262ba 0 0)
    IRQ_19-1479 1D..1 0us : resched_task (try_to_wake_up)
    IRQ_19-1479 1D..1 0us : __spin_unlock_irqrestore (try_to_wake_up)
    ...
    -0 1...1 11us!: default_idle (cpu_idle)
    ...
    -0 0Dn.1 602us : smp_apic_timer_interrupt (c0103baf 1 0)
    ...
    -5856 0D..2 618us : __switch_to (__schedule)
    -5856 0D..2 618us : __schedule <-0> (20 162)
    -5856 0D..2 619us : __spin_unlock_irq (__schedule)
    -5856 0...1 619us : trace_stop_sched_switched (__schedule)
    -5856 0D..1 619us : trace_stop_sched_switched <-5856> (37 0)

    what is visible in this trace is that CPU#1 ran try_to_wake_up() for
    PID:5856, it placed PID:5856 on CPU#0's runqueue and ran resched_task()
    for CPU#0. But it decided to not send an IPI that no CPU - due to
    TS_POLLING. But CPU#0 never woke up after its NEED_RESCHED bit was set,
    and only rescheduled to PID:5856 upon the next lapic timer IRQ. The
    result was a 600+ usecs latency and a missed wakeup!

    the bug turned out to be an idle-wakeup bug introduced into the mainline
    kernel this summer via an optimization in the x86_64 tree:

    commit 495ab9c045e1b0e5c82951b762257fe1c9d81564
    Author: Andi Kleen
    Date: Mon Jun 26 13:59:11 2006 +0200

    [PATCH] i386/x86-64/ia64: Move polling flag into thread_info_status

    During some profiling I noticed that default_idle causes a lot of
    memory traffic. I think that is caused by the atomic operations
    to clear/set the polling flag in thread_info. There is actually
    no reason to make this atomic - only the idle thread does it
    to itself, other CPUs only read it. So I moved it into ti->status.

    the problem is this type of change:

    if (!hlt_counter && boot_cpu_data.hlt_works_ok) {
    - clear_thread_flag(TIF_POLLING_NRFLAG);
    + current_thread_info()->status &= ~TS_POLLING;
    smp_mb__after_clear_bit();
    while (!need_resched()) {
    local_irq_disable();

    this changes clear_thread_flag() to an explicit clearing of TS_POLLING.
    clear_thread_flag() is defined as:

    clear_bit(flag, &ti->flags);

    and clear_bit() is a LOCK-ed atomic instruction on all x86 platforms:

    static inline void clear_bit(int nr, volatile unsigned long * addr)
    {
    __asm__ __volatile__( LOCK_PREFIX
    "btrl %1,%0"

    hence smp_mb__after_clear_bit() is defined as a simple compile barrier:

    #define smp_mb__after_clear_bit() barrier()

    but the explicit TS_POLLING clearing introduced by the patch:

    + current_thread_info()->status &= ~TS_POLLING;

    is not an atomic op! So the clearing of the TS_POLLING bit is freely
    reorderable with the reading of the NEED_RESCHED bit - and both now
    reside in different memory addresses.

    CPU idle wakeup very much depends on ordered memory ops, the clearing of
    the TS_POLLING flag must always be done before we test need_resched()
    and hit the idle instruction(s). [Symmetrically, the wakeup code needs
    to set NEED_RESCHED before it tests the TS_POLLING flag, so memory
    ordering is paramount.]

    Fernando's dual-core Athlon64 system has a sufficiently advanced memory
    ordering model so that it triggered this scenario very often.

    ( And it also turned out that the reason why these latencies never
    triggered on my testsystems is that i routinely use idle=poll, which
    was the only idle variant not affected by this bug. )

    The fix is to change the smp_mb__after_clear_bit() to an smp_mb(), to
    act as an absolute barrier between the TS_POLLING write and the
    NEED_RESCHED read. This affects almost all idling methods (default,
    ACPI, APM), on all 3 x86 architectures: i386, x86_64, ia64.

    Signed-off-by: Ingo Molnar
    Tested-by: Fernando Lopez-Lezcano
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     
  • The general gpio driver includes seem to now depend on having
    included before they are.

    Signed-off-by: Ben Dooks
    Signed-off-by: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • While developing more functionality in mdadm I found some bugs in md...

    - When we remove a device from an inactive array (write 'remove' to
    the 'state' sysfs file - see 'state_store') would should not
    update the superblock information - as we may not have
    read and processed it all properly yet.

    - initialise all raid_disk entries to '-1' else the 'slot sysfs file
    will claim '0' for all devices in an array before the array is
    started.

    - all '\n' not to be present at the end of words written to
    sysfs files

    - when we use SET_ARRAY_INFO to set the md metadata version,
    set the flag to say that there is persistant metadata.

    - allow GET_BITMAP_FILE to be called on an array that hasn't
    been started yet.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Linus sayeth:

    Google knows everything, and finds, on MS own site no less:

    "Windows 2000 default resources:

    One 4K memory window

    One 2 MB memory window

    Two 256-byte I/O windows"

    which is clearly utterly bogus and insufficient. But Microsoft apparently
    realized this, and:

    "Windows XP default resources:

    Because one memory window of 4K and one window of 2 MB are not
    sufficient for CardBus controllers in many configurations, Windows XP
    allocates larger memory windows to CardBus controllers where possible.
    However, resource windows are static (that is, the operating system
    does not dynamically allocate larger memory windows if new devices
    appear.) Under Windows XP, CardBus controllers will be assigned the
    following resources:

    One 4K memory window, as in Windows 2000

    64 MB memory, if that amount of memory is available. If 64 MB is not
    available the controller will receive 32 MB; if 32 MB is not available,
    the controller will receive 16 MB; if 16 MB is not available, the
    bridge will receive 8 MB; and so on down to a minimum assignment of 1
    MB in configurations where memory is too constrained for the operating
    system to provide a larger window.

    Two 256-byte I/O windows"

    So I think we have our answer. Windows uses one 4k window, and one 64MB
    window. And they are no more dynamic than we are (we _could_ try to do it
    dynamically, but let's face it, it's fairly painful to dynamically expand
    PCI bus resources - you may need to reprogram everything up to the root,
    so it would be absolutely crazy to do that unless you have some serious
    masochistic tendencies).

    So let's just increase our default value to 64M too.

    Cc: Markus Rechberger
    Cc: Daniel Ritz
    Cc: Dominik Brodowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • This fixes some bugs in the gxt4500 framebuffer driver, and adds support
    for GXT6000P cards.

    First, I had the red and blue channels swapped in the colormap update code,
    resulting in penguins' noses and feet turning blue (though the penguins
    weren't actually shivering :).

    Secondly, the code that calculated the values to put in the PLL that
    generates the pixel clock wasn't observing some constraints that I wasn't
    originally aware of, but am now that I have some documentation on the chip.

    The GXT6000P is essentially identical from software's point of view, except
    for a different reference clock for the PLL, and the addition of a geometry
    engine (which this driver doesn't use).

    Signed-off-by: Paul Mackerras
    Cc: James Simmons
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Mackerras
     
  • It is unnecessary and invalid to call sysfs_remove_group() after
    sysfs_create_group() failure.

    Cc: Sebastien Bouchard
    Cc: Mark Gross
    Signed-off-by: Akinobu Mita
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     
  • Fix a bug that only appears when AoE goes over a network card that does not
    support scatter-gather. The headers in the linear part of the skb appeared
    to be larger than they really were, resulting in data that was offset by 24
    bytes.

    This patch eliminates the offset data on cards that don't support
    scatter-gather or have had scatter-gather turned off. There remains an
    unrelated issue that I'll address in a separate email.

    Fixes bugzilla #7662

    Signed-off-by: "Ed L. Cashin"
    Cc:
    Cc: Greg KH
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ed L. Cashin
     
  • Teach this driver about the workqueue changes.

    Cc: Vitaly Wool
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Fix the compilation failure for smc911x.c when NET_POLL_CONTROLLER is set.

    Signed-off-by: Vitaly Wool
    Cc: Jeff Garzik
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vitaly Wool
     
  • Fix kernel-doc warnings in 2.6.20-rc1.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • drivers/char/rtc.c:116: warning: 'hpet_rtc_interrupt' defined but not used

    Cc: Jan Beulich
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Add compile-time and run-time API versioning.

    Signed-off-by: Avi Kivity
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Avi Kivity
     
  • This allows plan9 to get a little further booting.

    Signed-off-by: Michael Riepe
    Signed-off-by: Avi Kivity
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Riepe
     
  • This allows opensolaris to boot on kvm/intel.

    Signed-off-by: Michael Riepe
    Signed-off-by: Avi Kivity
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Riepe
     
  • Some msrs, such as MSR_STAR, are not available on all processors. Exporting
    them causes qemu to try to fetch them, which will fail.

    So, check all msrs for validity at module load time.

    Signed-off-by: Michael Riepe
    Signed-off-by: Avi Kivity
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Riepe
     
  • Signed-off-by: Avi Kivity
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Avi Kivity
     
  • Fixes sf bug 1614113 (segfaults in nbench).

    Signed-off-by: Avi Kivity
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Avi Kivity
     
  • This is necessary for linux guests.

    Signed-off-by: Avi Kivity
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Avi Kivity
     
  • Consolidate the logic for checking whether a vcpu index is valid. Also, use
    likely(), as a valid value should be the overwhelmingly common case.

    Signed-off-by: James Morris
    Signed-off-by: Avi Kivity
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    James Morris
     

21 Dec, 2006

21 commits

  • * 'for-linus' of git://brick.kernel.dk/data/git/linux-2.6-block:
    [PATCH] block: document io scheduler allow_merge_fn hook
    [PATCH] cfq-iosched: don't allow sync merges across queues
    [PATCH] Fixup blk_rq_unmap_user() API
    [PATCH] __blk_rq_unmap_user() fails to return error
    [PATCH] __blk_rq_map_user() doesn't need to grab the queue_lock
    [PATCH] Remove queue merging hooks
    [PATCH] ->nr_sectors and ->hard_nr_sectors are not used for BLOCK_PC requests
    [PATCH] cciss: fix XFER_READ/XFER_WRITE in do_cciss_request
    [PATCH] cciss: set default raid level when reading geometry fails

    Linus Torvalds
     
  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    [libata] sata_svw, sata_vsc: kill iomem warnings
    [PATCH] libata: take scmd->cmd_len into account when translating SCSI commands
    [PATCH] libata: kill @cdb argument from xlat methods
    [PATCH] libata: clean up variable name usage in xlat related functions
    [libata] Move some PCI IDs from sata_nv to ahci
    [libata] pata_via: suspend/resume support fix
    [libata] pata_cs5530: suspend/resume support tweak

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6:
    Driver core: proper prototype for drivers/base/init.c:driver_init()
    kobject: kobject_uevent() returns manageable value
    kref refcnt and false positives

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (22 commits)
    acpiphp: Link-time error for PCI Hotplug
    shpchp: cleanup shpchp.h
    shpchp: remove shpchprm_get_physical_slot_number
    shpchp: cleanup struct controller
    shpchp: remove unnecessary struct php_ctlr
    PCI: ATI sb600 sata quirk
    PCI legacy resource fix
    PCI: don't export device IDs to userspace
    PCI: Be a bit defensive in quirk_nvidia_ck804() so we don't risk dereferencing a NULL pdev.
    PCI: Fix multiple problems with VIA hardware
    PCI: Only check the HT capability bits in mpic.c
    PCI: Use pci_find_ht_capability() in drivers/pci/quirks.c
    PCI: Add #defines for Hypertransport MSI fields
    PCI: Use pci_find_ht_capability() in drivers/pci/htirq.c
    PCI: Add pci_find_ht_capability() for finding Hypertransport capabilities
    PCI: Create __pci_bus_find_cap_start() from __pci_bus_find_cap()
    pci: Introduce pci_find_present
    PCI: pcieport-driver: remove invalid warning message
    rpaphp: compiler warning cleanup
    PCI quirks: remove redundant check
    ...

    Linus Torvalds
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6: (34 commits)
    USB Storage: remove duplicate Nokia entry in unusual_devs.h
    [PATCH] bluetooth: add support for another Kensington dongle
    [PATCH] usb serial: add support for Novatel S720/U720 CDMA/EV-DO modems
    [PATCH] USB: Nokia E70 is an unusual device
    USB: fix to usbfs_snoop logging of user defined control urbs
    USB: at91_udc: Additional checks
    USB: at91_udc: Cleanup variables after failure in usb_gadget_register_driver()
    USB: at91_udc: allow drivers that support high speed
    USB: u132-hcd/ftdi-elan: add support for Option GT 3G Quad card
    USB: at91_udc, misc fixes
    USB: at91 udc, support at91sam926x addresses
    USB: OHCI support for PNX8550
    USB: ohci handles hardware faults during root port resets
    USB: ohci at91 warning fix
    USB: ohci whitespace/comment fixups
    USB: MAINTAINERS update, EHCI and OHCI
    USB: gadget driver unbind() is optional; section fixes; misc
    UHCI: module parameter to ignore overcurrent changes
    USB: Nokia E70 is an unusual device
    USB AUERSWALD: replace kmalloc+memset with kzalloc
    ...

    Linus Torvalds
     
  • * 'merge' of master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc:
    [POWERPC] Fix register save area alignment for swapcontext syscall
    [POWERPC] Fix PCI device channel state initialization
    [POWERPC] Update MTD OF documentation
    [POWERPC] Probe Efika platform before CHRP.
    [POWERPC] Fix build of cell zImage.initrd
    [POWERPC] iSeries: fix CONFIG_VIOPATH dependency
    [POWERPC] iSeries: fix viocons init
    [POWERPC] iSeries: fix viocd init
    [POWERPC] iSeries: fix iseries_veth init
    [POWERPC] iSeries: fix viotape init
    [POWERPC] iSeries: fix viodasd init
    [POWERPC] Workaround oldworld OF bug with IRQs & P2P bridges
    [POWERPC] powerpc: add scanning of ebc bus to of_platform
    [POWERPC] spufs: fix assignment of node numbers
    [POWERPC] cell: Fix spufs with "new style" device-tree
    [POWERPC] cell: Enable spider workarounds on all PCI buses
    [POWERPC] cell: add forward struct declarations to spu.h
    [POWERPC] cell: update cell_defconfig

    Linus Torvalds
     
  • * 'drm-patches' of master.kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm: Stop defining pci_pretty_name
    drm: r128: comment aligment with drm git
    drm: make kernel context switch same as for drm git tree.
    drm: fixup comment header style
    drm: savage: compat fix from drm git.
    drm: Unify radeon offset checking.
    i915_vblank_tasklet: Try harder to avoid tearing.
    DRM: handle pci_enable_device failure
    drm: fix return value check

    Linus Torvalds
     
  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (29 commits)
    [ARM] 4062/1: S3C24XX: Anubis and Osiris shuld have CONFIG_PM_SIMTEC
    [ARM] 4060/1: update several ARM defconfigs
    [ARM] 4061/1: xsc3: change of maintainer
    [ARM] 4059/1: VR1000: fix LED3's platform device number
    [ARM] 4022/1: iop13xx: generic irq fixups
    [ARM] 4015/1: s3c2410 cpu ifdefs
    [ARM] 4057/1: ixp23xx: unconditionally enable hardware coherency
    [ARM] 4056/1: iop13xx: fix resource.end off-by-one in flash setup
    [ARM] 4055/1: iop13xx: fix phys_io/io_pg_offst for iq81340mc/sc
    [ARM] 4054/1: ep93xx: add HWCAP_CRUNCH
    [ARM] 4052/1: S3C24XX: Fix PM in arch/arm/mach-s3c2410/Kconfig
    [ARM] Fix warnings from asm/system.h
    [ARM] 4051/1: S3C24XX: clean includes in S3C2440 and S3C2442 support
    [ARM] 4050/1: S3C24XX: remove old changelogs in arch/arm/mach-s3c2410
    [ARM] 4049/1: S3C24XX: fix sparse warning due to upf_t in regs-serial.h
    [ARM] 4048/1: S3C24XX: make s3c2410_pm_resume() static
    [ARM] 4046/1: S3C24XX: fix sparse errors arch/arm/mach-s3c2410
    [ARM] 4045/1: S3C24XX: remove old VA for non-shared areas
    [ARM] 4044/1: S3C24XX: fix sparse warnings in arch/arm/mach-s3c2410/s3c2442-clock.c
    [ARM] 4043/1: S3C24XX: fix sparse warnings in arch/arm/mach-s3c2410/s3c2440-clock.c
    ...

    Linus Torvalds
     
  • How many times are we going to merge this entry...

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Now that iomap merge is close to reality, and since the warnings and
    issue have been around so long, we don't need a reminder on every build
    that libata needs to be converted over to iomap.

    Signed-off-by: Jeff Garzik

    Jeff Garzik
     
  • Add the stupid sco fixup quirk to yet another Broadcom/Kensington device.

    Cc: Marcel Holtmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Olivier Galibert
     
  • Add USB vendor/device IDs for Novatel Wireless S720 and U720 CDMA/EV-DO
    modems to airprime.c.

    Signed-off-by: Eric Smith
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Eric Smith
     
  • Taken from http://bugzilla.kernel.org/show_bug.cgi?id=7508

    When the Nokia E70 Phone is plugged in to the USB port, I get:

    end_request: I/O error, dev sda, sector 1824527
    sd 0:0:0:0: SCSI error: return code = 0x10070000
    end_request: I/O error, dev sda, sector 1824535
    sd 0:0:0:0: SCSI error: return code = 0x10070000

    The fix is to add these lines to drivers/usb/storage/unusual_devs.h:

    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Andrew Morton
     
  • libata depended on SCSI command to have the correct length when
    tranlating it into an ATA command. This generally worked for commands
    issued by SCSI HLD but user could issue arbitrary broken command using
    sg interface.

    Also, when building ATAPI command, full command size was always
    copied. Because some ATAPI devices needs bytes after CDB cleared, if
    upper layer doesn't clear bytes after CDB, such devices will
    malfunction. This necessiated recent clear-garbage-after-CDB fix in
    sg interfaces. However, scsi_execute() isn't fixed yet and HL-DT-ST
    DVD-RAM GSA-H30N malfunctions on initialization commands issued from
    SCSI.

    This patch makes xlat functions always consider SCSI cmd_len. Each
    translation function checks for proper cmd_len and ATAPI translaation
    clears bytes after CDB.

    Signed-off-by: Tejun Heo
    Cc: Jens Axboe
    Cc: Douglas Gilbert
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • xlat function will be updated to consider qc->scsicmd->cmd_len and
    many xlat functions deference qc->scsicmd already. It doesn't make
    sense to pass qc->scsicmd->cmnd as @cdb separately. Kill the
    argument.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Variable names in xlat functions are quite confusing now. 'scsicmd'
    is used for CDB while qc->scsicmd points to struct scsi_cmnd while
    'cmd' is used for struct scsi_cmnd.

    This patch cleans up variable names in xlat functions such that 'scmd'
    is used for struct scsi_cmnd and 'cdb' for CDB. Also, 'scmd' local
    variable is added if qc->scsicmd is used multiple times.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • The content of memory map io of BAR5 have been change from MCP65 then
    sata_nv can't work fine on the platform based on MCP65 and MCP67, so move
    their IDs from sata_nv.c to ahci.c.

    Signed-off-by: Peer Chen
    Signed-off-by: Jeff Garzik

    Peer Chen
     
  • Add a prototype for driver_init() in include/linux/device.h.

    Also remove a static function of the same name in drivers/acpi/ibm_acpi.c to
    ibm_acpi_driver_init() to fix the namespace collision.

    Signed-off-by: Adrian Bunk
    Acked-by: Henrique de Moraes Holschuh
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Adrian Bunk
     
  • I'm seeing:
    `acpiphp_glue_exit' referenced in section `.init.text' of
    drivers/built-in.o: defined in discarded section `.exit.text' of
    drivers/built-in.o

    when trying to compile an IA64 kernel with PCI hotplug enabled.

    I suggest this patch:

    Signed-off-by: Peter Chubb
    Signed-off-by: Kristen Carlson Accardi
    Signed-off-by: Greg Kroah-Hartman

    Kristen Carlson Accardi
     
  • This patch cleans up shpchp.h.

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Kristen Carlson Accardi
    Signed-off-by: Greg Kroah-Hartman

    Kenji Kaneshige
     
  • This patch removes unnecessary shpchprm_get_physical_slot_number()
    function.

    Signed-off-by: Kenji Kaneshige
    Signed-off-by: Kristen Carlson Accardi
    Signed-off-by: Greg Kroah-Hartman

    Kenji Kaneshige