22 Apr, 2008

17 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6: (42 commits)
    PCI: Change PCI subsystem MAINTAINER
    PCI: pci-iommu-iotlb-flushing-speedup
    PCI: pci_setup_bridge() mustn't be __devinit
    PCI: pci_bus_size_cardbus() mustn't be __devinit
    PCI: pci_scan_device() mustn't be __devinit
    PCI: pci_alloc_child_bus() mustn't be __devinit
    PCI: replace remaining __FUNCTION__ occurrences
    PCI: Hotplug: fakephp: Return success, not ENODEV, when bus rescan is triggered
    PCI: Hotplug: Fix leaks in IBM Hot Plug Controller Driver - ibmphp_init_devno()
    PCI: clean up resource alignment management
    PCI: aerdrv_acpi.c: remove unneeded NULL check
    PCI: Update VIA CX700 quirk
    PCI: Expose PCI VPD through sysfs
    PCI: iommu: iotlb flushing
    PCI: simplify quirk debug output
    PCI: iova RB tree setup tweak
    PCI: parisc: use generic pci_enable_resources()
    PCI: ppc: use generic pci_enable_resources()
    PCI: powerpc: use generic pci_enable_resources()
    PCI: ia64: use generic pci_enable_resources()
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    [HWRNG] omap: Minor updates
    [CRYPTO] kconfig: Ordering cleanup
    [CRYPTO] all: Clean up init()/fini()
    [CRYPTO] padlock-aes: Use generic setkey function
    [CRYPTO] aes: Export generic setkey
    [CRYPTO] api: Make the crypto subsystem fully modular
    [CRYPTO] cts: Add CTS mode required for Kerberos AES support
    [CRYPTO] lrw: Replace all adds to big endians variables with be*_add_cpu
    [CRYPTO] tcrypt: Change the XTEA test vectors
    [CRYPTO] tcrypt: Shrink the tcrypt module
    [CRYPTO] tcrypt: Change the usage of the test vectors
    [CRYPTO] api: Constify function pointer tables
    [CRYPTO] aes-x86-32: Remove unused return code
    [CRYPTO] tcrypt: Shrink speed templates
    [CRYPTO] tcrypt: Group common speed templates
    [CRYPTO] sha512: Rename sha512 to sha512_generic
    [CRYPTO] sha384: Hardware acceleration for s390
    [CRYPTO] sha512: Hardware acceleration for s390
    [CRYPTO] s390: Generic sha_update and sha_final
    [CRYPTO] api: Switch to proc_create()

    Linus Torvalds
     
  • …l/git/jgarzik/misc-2.6

    * 'irq-cleanups-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
    [ISDN] minor irq handler cleanups
    drivers/char: minor irq handler cleanups
    [PPC] minor irq handler cleanups
    [BLACKFIN] minor irq handler cleanups
    [SPARC] minor irq handler cleanups
    ARM minor irq handler cleanup: avoid passing unused info to irq

    Linus Torvalds
     
  • * 'isdn-cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
    [ISDN] Hisax: eliminate many unnecessary references to CardType[]
    [ISDN] HiSax: modularization prep

    Linus Torvalds
     
  • This adds support for PTRACE_GETSIGINFO and PTRACE_SETSIGINFO in
    compat_ptrace_request. It relies on existing arch definitions for
    copy_siginfo_to_user32 and copy_siginfo_from_user32.

    On powerpc, this fixes a longstanding regression of 32-bit ptrace
    calls on 64-bit kernels vs native calls (64-bit calls or 32-bit
    kernels). This can be seen in a 32-bit call using PTRACE_GETSIGINFO
    to examine e.g. siginfo_t.si_addr from a signal that sets it.
    (This was broken as of 2.6.24 and, I presume, many or all prior versions.)

    Signed-off-by: Roland McGrath
    Signed-off-by: Linus Torvalds

    Roland McGrath
     
  • Add kernel-doc notation for ndisc_nodetype:

    Warning(linux-2.6.25-git2//include/linux/skbuff.h:340): No description found for parameter 'ndisc_nodetype'

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

    Randy Dunlap
     
  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (202 commits)
    [POWERPC] Fix compile breakage for 64-bit UP configs
    [POWERPC] Define copy_siginfo_from_user32
    [POWERPC] Add compat handler for PTRACE_GETSIGINFO
    [POWERPC] i2c: Fix build breakage introduced by OF helpers
    [POWERPC] Optimize fls64() on 64-bit processors
    [POWERPC] irqtrace support for 64-bit powerpc
    [POWERPC] Stacktrace support for lockdep
    [POWERPC] Move stackframe definitions to common header
    [POWERPC] Fix device-tree locking vs. interrupts
    [POWERPC] Make pci_bus_to_host()'s struct pci_bus * argument const
    [POWERPC] Remove unused __max_memory variable
    [POWERPC] Simplify xics direct/lpar irq_host setup
    [POWERPC] Use pseries_setup_i8259_cascade() in pseries_mpic_init_IRQ()
    [POWERPC] Turn xics_setup_8259_cascade() into a generic pseries_setup_i8259_cascade()
    [POWERPC] Move xics_setup_8259_cascade() into platforms/pseries/setup.c
    [POWERPC] Use asm-generic/bitops/find.h in bitops.h
    [POWERPC] 83xx: mpc8315 - fix USB UTMI Host setup
    [POWERPC] 85xx: Fix the size of qe muram for MPC8568E
    [POWERPC] 86xx: mpc86xx_hpcn - Temporarily accept old dts node identifier.
    [POWERPC] 86xx: mark functions static, other minor cleanups
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6: (36 commits)
    SCSI: convert struct class_device to struct device
    DRM: remove unused dev_class
    IB: rename "dev" to "srp_dev" in srp_host structure
    IB: convert struct class_device to struct device
    memstick: convert struct class_device to struct device
    driver core: replace remaining __FUNCTION__ occurrences
    sysfs: refill attribute buffer when reading from offset 0
    PM: Remove destroy_suspended_device()
    Firmware: add iSCSI iBFT Support
    PM: Remove legacy PM (fix)
    Kobject: Replace list_for_each() with list_for_each_entry().
    SYSFS: Explicitly include required header file slab.h.
    Driver core: make device_is_registered() work for class devices
    PM: Convert wakeup flag accessors to inline functions
    PM: Make wakeup flags available whenever CONFIG_PM is set
    PM: Fix misuse of wakeup flag accessors in serial core
    Driver core: Call device_pm_add() after bus_add_device() in device_add()
    PM: Handle device registrations during suspend/resume
    block: send disk "change" event for rescan_partitions()
    sysdev: detect multiple driver registrations
    ...

    Fixed trivial conflict in include/linux/memory.h due to semaphore header
    file change (made irrelevant by the change to mutex).

    Linus Torvalds
     
  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    rose: Socket lock was not released before returning to user space
    hci_usb: remove code obfuscation
    drivers/net/appletalk: use time_before, time_before_eq, etc
    drivers/atm: use time_before, time_before_eq, etc
    hci_usb: do not initialize static variables to 0
    tg3: 5701 DMA corruption fix
    atm nicstar: Removal of debug code containing deprecated calls to cli()/sti()
    iwlwifi: Fix unconditional access to station->tidp[].agg.
    netfilter: Fix SIP conntrack build with NAT disabled.
    netfilter: Fix SCTP nat build.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6: (25 commits)
    avr32: Add hardware power-down function call
    avr32: add include/asm-avr32/serial.h
    avr32: don't offer PARPORT_PC
    avr32: don't offer CONFIG_GEN_RTC
    avr32: don't offer CONFIG_RTC
    add include/asm-avr32/xor.h
    avr32: Remove two unused #defines from mm/init.c
    avr32: Implement set_rate(), set_parent() and mode() for pll1
    avr32: Generic clockevents support
    avr32: Move sleep code into mach-at32ap
    avr32: Use constants from sysreg.h in asm.h
    avr32: Delete mostly unused header asm/intc.h
    avr32: start clocksource cleanup
    avr32: pass i2c board info through at32_add_device_twi
    avr32: cleanup - use _AC macro to define PAGE_SIZE
    Generate raw keyboard codes for AVR32 architecture
    atmel_usba_udc: Add support for AT91CAP9 UDPHS
    atmel_usba_udc: Add missing kfree() in usba_udc_remove()
    atmel_usba_udc: move endpoint declarations into platform data.
    atmel_usba_udc: Kill GPIO_PIN_NONE
    ...

    Linus Torvalds
     
  • * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt:
    hrtimer: optimize the softirq time optimization
    hrtimer: reduce calls to hrtimer_get_softirq_time()
    clockevents: fix typo in tick-broadcast.c
    jiffies: add time_is_after_jiffies and others which compare with jiffies

    Linus Torvalds
     
  • * 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc:
    Deprecate the asm/semaphore.h files in feature-removal-schedule.
    Convert asm/semaphore.h users to linux/semaphore.h
    security: Remove unnecessary inclusions of asm/semaphore.h
    lib: Remove unnecessary inclusions of asm/semaphore.h
    kernel: Remove unnecessary inclusions of asm/semaphore.h
    include: Remove unnecessary inclusions of asm/semaphore.h
    fs: Remove unnecessary inclusions of asm/semaphore.h
    drivers: Remove unnecessary inclusions of asm/semaphore.h
    net: Remove unnecessary inclusions of asm/semaphore.h
    arch: Remove unnecessary inclusions of asm/semaphore.h

    Linus Torvalds
     
  • * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (212 commits)
    [ARM] pxa: Phycore pcm-990-specific code for the PXA270 Quick Capture driver
    [ARM] pxa: V4L2 soc_camera driver for PXA270
    [ARM] pxa: restrict availability of pxa2xx PCMCIA drivers
    [ARM] 5005/1: BAST: Fix kset_name initialiser
    [ARM] 4967/1: Adds functions to set clkout rate for Samsung S3C2410
    [ARM] 4988/1: Add GPIO lib support to the EP93xx
    [ARM] Add initial sparsemem support
    [ARM] pxa: initialise PXA devices before platform init code
    [ARM] 5002/1: tosa: add two more leds
    [ARM] 5004/1: Tosa: make several unreferenced structures static.
    [ARM] 5003/1: Shut up sparse warnings
    [ARM] 4977/2: soc - pxa2xx-ac97 - Add missing clk_enable()
    [ARM] 4976/1: zylonite: Configure GPIO for WM9713 IRQ line
    [ARM] 4974/1: Drop unused leds-tosa.
    [ARM] 4973/1: Tosa: use leds-gpio driver.
    [ARM] 4972/1: Tosa: convert scoop GPIOs usage to generic gpio code
    [ARM] 4971/1: pxaficp_ir: provide startup and shutdown hooks
    [ARM] pxa: lubbock: move mis-placed SPI info
    [ARM] 4970/1: tosa: correct gpio used for wake up.
    [ARM] 4966/1: magician: add MFP pin configuration
    ...

    Linus Torvalds
     
  • …linux-2.6-sched-devel

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched-devel: (62 commits)
    sched: build fix
    sched: better rt-group documentation
    sched: features fix
    sched: /debug/sched_features
    sched: add SCHED_FEAT_DEADLINE
    sched: debug: show a weight tree
    sched: fair: weight calculations
    sched: fair-group: de-couple load-balancing from the rb-trees
    sched: fair-group scheduling vs latency
    sched: rt-group: optimize dequeue_rt_stack
    sched: debug: add some debug code to handle the full hierarchy
    sched: fair-group: SMP-nice for group scheduling
    sched, cpuset: customize sched domains, core
    sched, cpuset: customize sched domains, docs
    sched: prepatory code movement
    sched: rt: multi level group constraints
    sched: task_group hierarchy
    sched: fix the task_group hierarchy for UID grouping
    sched: allow the group scheduler to have multiple levels
    sched: mix tasks and groups
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86: (77 commits)
    x86: UV startup of slave cpus
    x86: integrate pci-dma.c
    x86: don't do dma if mask is NULL.
    x86: return conditional to mmu
    x86: remove kludge from x86_64
    x86: unify gfp masks
    x86: retry allocation if failed
    x86: don't try to allocate from DMA zone at first
    x86: use a fallback dev for i386
    x86: use numa allocation function in i386
    x86: remove virt_to_bus in pci-dma_64.c
    x86: adjust dma_free_coherent for i386
    x86: move bad_dma_address
    x86: isolate coherent mapping functions
    x86: move dma_coherent functions to pci-dma.c
    x86: merge iommu initialization parameters
    x86: merge dma_supported
    x86: move pci fixup to pci-dma.c
    x86: move x86_64-specific to common code.
    x86: move initialization functions to pci-dma.c
    ...

    Linus Torvalds
     
  • * 'ro-bind.b6' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (24 commits)
    [PATCH] r/o bind mounts: debugging for missed calls
    [PATCH] r/o bind mounts: honor mount writer counts at remount
    [PATCH] r/o bind mounts: track numbers of writers to mounts
    [PATCH] r/o bind mounts: check mnt instead of superblock directly
    [PATCH] r/o bind mounts: elevate count for xfs timestamp updates
    [PATCH] r/o bind mounts: make access() use new r/o helper
    [PATCH] r/o bind mounts: write counts for truncate()
    [PATCH] r/o bind mounts: elevate write count for chmod/chown callers
    [PATCH] r/o bind mounts: elevate write count for open()s
    [PATCH] r/o bind mounts: elevate write count for ioctls()
    [PATCH] r/o bind mounts: write count for file_update_time()
    [PATCH] r/o bind mounts: elevate write count for do_utimes()
    [PATCH] r/o bind mounts: write counts for touch_atime()
    [PATCH] r/o bind mounts: elevate write count for ncp_ioctl()
    [PATCH] r/o bind mounts: elevate write count for xattr_permission() callers
    [PATCH] r/o bind mounts: get write access for vfs_rename() callers
    [PATCH] r/o bind mounts: write counts for link/symlink
    [PATCH] r/o bind mounts: get callers of vfs_mknod/create/mkdir()
    [PATCH] r/o bind mounts: elevate write count for rmdir and unlink.
    [PATCH] r/o bind mounts: drop write during emergency remount
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (27 commits)
    sh: Fix up L2 cache probe.
    sh: Fix up SH-4A part probe.
    sh: Add support for SH7723 CPU subtype.
    sh: Fix up SH7763 build.
    sh: Add migor_ts support to MigoR
    sh: Add rs5c732b RTC support to MigoR
    sh: Add I2C support to MigoR
    sh: Add I2C platform data to sh7722
    sh: MigoR NAND flash support using gen_flash
    sh: MigoR NOR flash support using physmap-flash
    sh: Fix up mach-types formatting from merge damage.
    sh: r7780rp: Hook up the I2C and SMBus platform devices.
    sh: Use phyical addresses for MigoR smc91x resources
    sh: Use physical addresses for sh7722 USBF resources
    sh: Add MigoR header file
    Fix sh_keysc double free
    sh: Fix up __access_ok() check for nommu.
    sh: Allow optimized clear/copy page routines to be used on SH-2.
    sh: Hook up the rest of the SH7770 serial ports.
    sh: Add support for Solution Engine SH7721 board
    ...

    Linus Torvalds
     

21 Apr, 2008

23 commits

  • The RCU iterators used 'rcu_dereference()' on an already-fetched RCU
    pointer value, which defeats the whole point of the exercise.

    When we dereference a pointer protected by RCU, we need to make sure
    that we only fetch the value _once_, because if the compiler ends up
    re-loading it due to register pressure, the newly reloaded value could
    be different from the previously fetched one, and you get inconsistent
    results.

    Cleaned-up, fixed, and the pointless list_for_each_safe_rcu #define
    deleted by Paul Kenney.

    Acked-by: Herbert Xu
    Signed-off-by: Paul E. McKenney
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • The previous optimization did not take the case into account where a
    clock provides its own softirq_get_time() function.

    Check for the availablitiy of the clock get time function first and
    then check if we need to retrieve the time for both clocks via
    hrtimer_softirq_gettime() to avoid a double evaluation of time in that
    case as well.

    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • It seems that hrtimer_run_queues() is calling hrtimer_get_softirq_time() more
    often than it needs to. This can cause frequent contention on systems with
    large numbers of processors/cores.

    With this patch, hrtimer_run_queues only calls hrtimer_get_softirq_time() if
    there is a pending timer in one of the hrtimer bases, and only once.

    This also combines hrtimer_run_queues() and the inline run_hrtimer_queue()
    into one function.

    [ tglx@linutronix.de: coding style ]

    Signed-off-by: Dimitri Sivanich
    Cc: Peter Zijlstra
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Thomas Gleixner

    Dimitri Sivanich
     
  • braodcast -> broadcast

    Signed-off-by: Glauber Costa
    Signed-off-by: Andrew Morton
    Signed-off-by: Thomas Gleixner

    Glauber Costa
     
  • Most of time_after like macros usages just compare jiffies and another number,
    so here add some time_is_* macros for convenience.

    Signed-off-by: Dave Young
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Thomas Gleixner

    Dave Young
     
  • Jesse foolishly volunteered to handle PCI patches. Update MAINTAINERS to
    reflect this.

    Woho! Time to kick back and relax...

    Signed-off-by: Jesse Barnes
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • The following patch is an update to use an array instead of a list of
    IOVA's in the implementation of defered iotlb flushes. It takes
    inspiration from sba_iommu.c

    I like this implementation better as it encapsulates the batch process
    within intel-iommu.c, and no longer touches iova.h (which is shared)

    Performance data: Netperf 32byte UDP streaming
    2.6.25-rc3-mm1:
    IOMMU-strict : 58Mps @ 62% cpu
    NO-IOMMU : 71Mbs @ 41% cpu
    List-based IOMMU-default-batched-IOTLB flush: 66Mbps @ 57% cpu

    with this patch:
    IOMMU-strict : 73Mps @ 75% cpu
    NO-IOMMU : 74Mbs @ 42% cpu
    Array-based IOMMU-default-batched-IOTLB flush: 72Mbps @ 62% cpu

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

    mark gross
     
  • WARNING: drivers/pci/built-in.o(.text+0x28ee9): Section mismatch in reference from the function pci_bus_assign_resources() to the function .devinit.text:pci_setup_bridge()

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Adrian Bunk
     
  • WARNING: drivers/pci/built-in.o(.text+0x28e1f): Section mismatch in reference from the function pci_bus_size_bridges() to the function .devinit.text:pci_bus_size_cardbus()

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Adrian Bunk
     
  • WARNING: drivers/pci/built-in.o(.text+0x150f): Section mismatch in reference from the function pci_scan_single_device() to the function .devinit.text:pci_scan_device()

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Adrian Bunk
     
  • WARNING: drivers/pci/built-in.o(.text+0xc4c): Section mismatch in reference from the function pci_add_new_bus() to the function .devinit.text:pci_alloc_child_bus()

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Adrian Bunk
     
  • __FUNCTION__ is gcc-specific, use __func__

    Signed-off-by: Harvey Harrison
    Signed-off-by: Greg Kroah-Hartman

    Harvey Harrison
     
  • The 'power' attribute of the fakephp driver originally only let one turn a
    slot off. If one tried to turn a slot on (echo 1 > .../power), it would
    return ENODEV, as fakephp did not support this function.

    An old (pre-git) patch changed this:
    2004/11/11 16:33:31-08:00 jdittmer
    [PATCH] fakephp: add pci bus rescan ability
    http://article.gmane.org/gmane.linux.kernel/251183

    Now writing "1" to the power attribute has the effect of triggering a bus
    rescan, but it still returns ENODEV, probably an oversight in the above
    patch.

    Using the BusyBox echo will not produce an error message, but will
    trigger *two* bus rescans (and return an exit code of 1):
    ~ # strace echo -n 1 > /sys/bus/pci/slots/0000:00:00.0/power
    ...
    write(1, "1", 1) = -1 ENODEV (No such device)
    write(1, "1", 1) = -1 ENODEV (No such device)
    exit(1) = ?

    Using cp gives a write error, even though the write did happen and a rescan
    was triggered:
    ~ # echo -n 1 > tmp ; cp tmp /sys/bus/pci/slots/0000:00:00.0/power
    cp: Write Error: No such device

    It seems much better to return success instead of failure. The actual
    status of the bus rescan is hard to return. It happens asynchronously in a
    work thread, so the sysfs store functions returns before any status is
    ready (the whole point of the work queue). And even if it didn't do this,
    the rescan doesn't have any clear status to return.

    Signed-off-by: Trent Piepho
    CC: Jan Dittmer
    Signed-off-by: Greg Kroah-Hartman

    Trent Piepho
     
  • In drivers/pci/hotplug/ibmphp_core.c::ibmphp_init_devno() we allocate
    space dynamically for a PCI irq routing table by calling
    pcibios_get_irq_routing_table(), but we never free the allocated space.

    This patch frees the allocated space at the function exit points.

    Spotted by the Coverity checker. Compile tested only.

    Please consider applying.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Greg Kroah-Hartman

    Jesper Juhl
     
  • Done per Linus' request and suggestions. Linus has explained that
    better than I'll be able to explain:

    On Thu, Mar 27, 2008 at 10:12:10AM -0700, Linus Torvalds wrote:
    > Actually, before we go any further, there might be a less intrusive
    > alternative: add just a couple of flags to the resource flags field (we
    > still have something like 8 unused bits on 32-bit), and use those to
    > implement a generic "resource_alignment()" routine.
    >
    > Two flags would do it:
    >
    > - IORESOURCE_SIZEALIGN: size indicates alignment (regular PCI device
    > resources)
    >
    > - IORESOURCE_STARTALIGN: start field is alignment (PCI bus resources
    > during probing)
    >
    > and then the case of both flags zero (or both bits set) would actually be
    > "invalid", and we would also clear the IORESOURCE_STARTALIGN flag when we
    > actually allocate the resource (so that we don't use the "start" field as
    > alignment incorrectly when it no longer indicates alignment).
    >
    > That wouldn't be totally generic, but it would have the nice property of
    > automatically at least add sanity checking for that whole "res->start has
    > the odd meaning of 'alignment' during probing" and remove the need for a
    > new field, and it would allow us to have a generic "resource_alignment()"
    > routine that just gets a resource pointer.

    Besides, I removed IORESOURCE_BUS_HAS_VGA flag which was unused for ages.

    Signed-off-by: Ivan Kokshaysky
    Cc: Linus Torvalds
    Cc: Gary Hade
    Signed-off-by: Greg Kroah-Hartman

    Ivan Kokshaysky
     
  • There's no reason for checking pdev->bus for being NULL here (and we'd
    anyway Oops 3 lines below if it was).

    Signed-off-by: Adrian Bunk
    Signed-off-by: Greg Kroah-Hartman

    Adrian Bunk
     
  • This follows up 53a9bf4267b8b1f958dbeb7c8c1ef21c82229b71. Some newer
    CX700 BIOSes from our vendor have PCI Bus Parking disabled but PCI
    Master read caching enabled. This creates problems such as system
    freezing when both the network controller and the USB controller are
    active and one of them is pretty busy (e.g. heavy network traffic).

    This patch separates the checks and both the bus parking and the read
    caching are disabled independently if either is enabled by the BIOS.

    Signed-off-by: Tim Yamin
    Signed-off-by: Greg Kroah-Hartman

    Tim Yamin
     
  • Vital Product Data (VPD) may be exposed by PCI devices in several
    ways. It is generally unsafe to read this information through the
    existing interfaces to user-land because of stateful interfaces.

    This adds:
    - abstract operations for VPD access (struct pci_vpd_ops)
    - VPD state information in struct pci_dev (struct pci_vpd)
    - an implementation of the VPD access method specified in PCI 2.2
    (in access.c)
    - a 'vpd' binary file in sysfs directories for PCI devices with VPD
    operations defined

    It adds a probe for PCI 2.2 VPD in pci_scan_device() and release of
    VPD state in pci_release_dev().

    Signed-off-by: Ben Hutchings
    Signed-off-by: Greg Kroah-Hartman

    Ben Hutchings
     
  • This patch is for batching up the flushing of the IOTLB for the DMAR
    implementation found in the Intel VT-d hardware. It works by building a list
    of to be flushed IOTLB entries and a bitmap list of which DMAR engine they are
    from.

    After either a high water mark (250 accessible via debugfs) or 10ms the list
    of iova's will be reclaimed and the DMAR engines associated are IOTLB-flushed.

    This approach recovers 15 to 20% of the performance lost when using the IOMMU
    for my netperf udp stream benchmark with small packets. It can be disabled
    with a kernel boot parameter "intel_iommu=strict".

    Its use does weaken the IOMMU protections a bit.

    Signed-off-by: Mark Gross
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    mark gross
     
  • print_fn_descriptor_symbol() prints the address if we don't have a symbol,
    so no need to print both.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Bjorn Helgaas
     
  • The following patch merges two functions into one allowing for a 3%
    reduction in overhead in locating, allocating and inserting pages for
    use in IOMMU operations.

    Its a bit of a eye-crosser so I welcome any RB-tree / MM experts to take
    a look. It works by re-using some of the information gathered in the
    search for the pages to use in setting up the IOTLB's in the insertion
    of the iova structure into the RB tree.

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

    mark gross
     
  • Use the generic pci_enable_resources() instead of the arch-specific code.

    Unlike this arch-specific code, the generic version:
    - checks PCI_NUM_RESOURCES (11), not DEVICE_COUNT_RESOURCE (12), resources
    - skips resources that have neither IORESOURCE_IO nor IORESOURCE_MEM set
    - skips ROM resources unless IORESOURCE_ROM_ENABLE is set
    - checks for resource collisions with "!r->parent"

    Signed-off-by: Bjorn Helgaas
    Acked-by: Kyle McMartin
    Signed-off-by: Greg Kroah-Hartman

    Bjorn Helgaas
     
  • Use the generic pci_enable_resources() instead of the arch-specific code.

    Unlike this arch-specific code, the generic version:
    - checks PCI_NUM_RESOURCES (11), not 6, resources
    - skips resources that have neither IORESOURCE_IO nor IORESOURCE_MEM set
    - skips ROM resources unless IORESOURCE_ROM_ENABLE is set
    - checks for resource collisions with "!r->parent", not IORESOURCE_UNSET

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Greg Kroah-Hartman

    Bjorn Helgaas