1. 21 Apr, 2008 40 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6 · bda0c0af
      Linus Torvalds authored
      * 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()
        ...
      bda0c0af
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 904e0ab5
      Linus Torvalds authored
      * 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()
      904e0ab5
    • Linus Torvalds's avatar
      Merge branch 'irq-cleanups-upstream' of... · 98a1e95f
      Linus Torvalds authored
      Merge branch 'irq-cleanups-upstream' of git://git.kernel.org/pub/scm/linux/kernel/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
      98a1e95f
    • Linus Torvalds's avatar
      Merge branch 'isdn-cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 · abe834c8
      Linus Torvalds authored
      * '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
      abe834c8
    • Roland McGrath's avatar
      ptrace: compat_ptrace_request siginfo · e16b2781
      Roland McGrath authored
      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: default avatarRoland McGrath <roland@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e16b2781
    • Randy Dunlap's avatar
      skbuff: fix missing kernel-doc notation · 553a5672
      Randy Dunlap authored
      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: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      553a5672
    • Linus Torvalds's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · 9a64388d
      Linus Torvalds authored
      * '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
        ...
      9a64388d
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6 · e80ab411
      Linus Torvalds authored
      * 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).
      e80ab411
    • Linus Torvalds's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 529a41e3
      Linus Torvalds authored
      * '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.
      529a41e3
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6 · c3823c47
      Linus Torvalds authored
      * '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
        ...
      c3823c47
    • Linus Torvalds's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt · 5dfeaef8
      Linus Torvalds authored
      * '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
      5dfeaef8
    • Linus Torvalds's avatar
      Merge branch 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc · 429f731d
      Linus Torvalds authored
      * '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
      429f731d
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm · 85b375a6
      Linus Torvalds authored
      * '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
        ...
      85b375a6
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of... · ec965350
      Linus Torvalds authored
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mingo/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
        ...
      ec965350
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86 · 5f033bb9
      Linus Torvalds authored
      * '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
        ...
      5f033bb9
    • Linus Torvalds's avatar
      Merge branch 'ro-bind.b6' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · fd9be4ce
      Linus Torvalds authored
      * '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
        ...
      fd9be4ce
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 · b1af9ccc
      Linus Torvalds authored
      * 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
        ...
      b1af9ccc
    • Linus Torvalds's avatar
      Fix RCU list iterator use of 'rcu_dereference()' · cc216c5d
      Linus Torvalds authored
      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: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cc216c5d
    • Thomas Gleixner's avatar
      hrtimer: optimize the softirq time optimization · 259aae86
      Thomas Gleixner authored
      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: default avatarThomas Gleixner <tglx@linutronix.de>
      259aae86
    • Dimitri Sivanich's avatar
      hrtimer: reduce calls to hrtimer_get_softirq_time() · 833883d9
      Dimitri Sivanich authored
      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: default avatarDimitri Sivanich <sivanich@sgi.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      833883d9
    • Glauber Costa's avatar
      clockevents: fix typo in tick-broadcast.c · 833df317
      Glauber Costa authored
      braodcast -> broadcast
      Signed-off-by: default avatarGlauber Costa <gcosta@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      833df317
    • Dave Young's avatar
      jiffies: add time_is_after_jiffies and others which compare with jiffies · 3f34d024
      Dave Young authored
      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: default avatarDave Young <hidave.darkstar@gmail.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      3f34d024
    • Greg Kroah-Hartman's avatar
      PCI: Change PCI subsystem MAINTAINER · af40b485
      Greg Kroah-Hartman authored
      Jesse foolishly volunteered to handle PCI patches.  Update MAINTAINERS to
      reflect this.
      
      Woho!  Time to kick back and relax...
      Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      af40b485
    • mark gross's avatar
      PCI: pci-iommu-iotlb-flushing-speedup · 80b20dd8
      mark gross authored
      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: <mgross@linux.intel.com>
      Cc: Grant Grundler <grundler@parisc-linux.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      80b20dd8
    • Adrian Bunk's avatar
      PCI: pci_setup_bridge() mustn't be __devinit · a391f197
      Adrian Bunk authored
      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: default avatarAdrian Bunk <bunk@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      a391f197
    • Adrian Bunk's avatar
      PCI: pci_bus_size_cardbus() mustn't be __devinit · 5468ae61
      Adrian Bunk authored
      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: default avatarAdrian Bunk <bunk@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      5468ae61
    • Adrian Bunk's avatar
      PCI: pci_scan_device() mustn't be __devinit · 7f7b5de2
      Adrian Bunk authored
      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: default avatarAdrian Bunk <bunk@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      7f7b5de2
    • Adrian Bunk's avatar
      PCI: pci_alloc_child_bus() mustn't be __devinit · cbd4e055
      Adrian Bunk authored
      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: default avatarAdrian Bunk <bunk@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      cbd4e055
    • Harvey Harrison's avatar
      PCI: replace remaining __FUNCTION__ occurrences · 66bef8c0
      Harvey Harrison authored
      __FUNCTION__ is gcc-specific, use __func__
      Signed-off-by: default avatarHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      66bef8c0
    • Trent Piepho's avatar
      PCI: Hotplug: fakephp: Return success, not ENODEV, when bus rescan is triggered · ca99eb8c
      Trent Piepho authored
      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: default avatarTrent Piepho <tpiepho@freescale.com>
      CC: Jan Dittmer <jdittmer@ppp0.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      ca99eb8c
    • Jesper Juhl's avatar
      PCI: Hotplug: Fix leaks in IBM Hot Plug Controller Driver - ibmphp_init_devno() · 029c3c13
      Jesper Juhl authored
      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: default avatarJesper Juhl <jesper.juhl@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      029c3c13
    • Ivan Kokshaysky's avatar
      PCI: clean up resource alignment management · 88452565
      Ivan Kokshaysky authored
      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: default avatarIvan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Gary Hade <garyhade@us.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      88452565
    • Adrian Bunk's avatar
      PCI: aerdrv_acpi.c: remove unneeded NULL check · d75b3052
      Adrian Bunk authored
      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: default avatarAdrian Bunk <bunk@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      d75b3052
    • Tim Yamin's avatar
      PCI: Update VIA CX700 quirk · bc043274
      Tim Yamin authored
      This follows up 53a9bf42. 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: default avatarTim Yamin <tim.yamin@zonbu.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      bc043274
    • Ben Hutchings's avatar
      PCI: Expose PCI VPD through sysfs · 94e61088
      Ben Hutchings authored
      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: default avatarBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      94e61088
    • mark gross's avatar
      PCI: iommu: iotlb flushing · 5e0d2a6f
      mark gross authored
      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: default avatarMark Gross <mgross@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      5e0d2a6f
    • Bjorn Helgaas's avatar
      PCI: simplify quirk debug output · 0255f543
      Bjorn Helgaas authored
      print_fn_descriptor_symbol() prints the address if we don't have a symbol,
      so no need to print both.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      0255f543
    • mark gross's avatar
      PCI: iova RB tree setup tweak · ddf02886
      mark gross authored
      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: <mgross@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      ddf02886
    • Bjorn Helgaas's avatar
      PCI: parisc: use generic pci_enable_resources() · c9e9e0bf
      Bjorn Helgaas authored
      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: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Acked-by: default avatarKyle McMartin <kyle@mcmartin.ca>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      c9e9e0bf
    • Bjorn Helgaas's avatar
      PCI: ppc: use generic pci_enable_resources() · e789920d
      Bjorn Helgaas authored
      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: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      e789920d