17 Oct, 2008

4 commits

  • I dunno how this missed Bjorn and his quest to use %pF in commit
    c80cfb0406c01bb5da91bfe30f5cb1fd96831138 ("vsprintf: use new vsprintf
    symbolic function pointer format"), but it did.

    So use %pF in the two remaining places that still tried to print out
    function pointers by hand.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * 'kvm-updates/2.6.28' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm: (134 commits)
    KVM: ia64: Add intel iommu support for guests.
    KVM: ia64: add directed mmio range support for kvm guests
    KVM: ia64: Make pmt table be able to hold physical mmio entries.
    KVM: Move irqchip_in_kernel() from ioapic.h to irq.h
    KVM: Separate irq ack notification out of arch/x86/kvm/irq.c
    KVM: Change is_mmio_pfn to kvm_is_mmio_pfn, and make it common for all archs
    KVM: Move device assignment logic to common code
    KVM: Device Assignment: Move vtd.c from arch/x86/kvm/ to virt/kvm/
    KVM: VMX: enable invlpg exiting if EPT is disabled
    KVM: x86: Silence various LAPIC-related host kernel messages
    KVM: Device Assignment: Map mmio pages into VT-d page table
    KVM: PIC: enhance IPI avoidance
    KVM: MMU: add "oos_shadow" parameter to disable oos
    KVM: MMU: speed up mmu_unsync_walk
    KVM: MMU: out of sync shadow core
    KVM: MMU: mmu_convert_notrap helper
    KVM: MMU: awareness of new kvm_mmu_zap_page behaviour
    KVM: MMU: mmu_parent_walk
    KVM: x86: trap invlpg
    KVM: MMU: sync roots on mmu reload
    ...

    Linus Torvalds
     
  • * 'core-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    do_generic_file_read: s/EINTR/EIO/ if lock_page_killable() fails
    softirq, warning fix: correct a format to avoid a warning
    softirqs, debug: preemption check
    x86, pci-hotplug, calgary / rio: fix EBDA ioremap()
    IO resources, x86: ioremap sanity check to catch mapping requests exceeding, fix
    IO resources, x86: ioremap sanity check to catch mapping requests exceeding the BAR sizes
    softlockup: Documentation/sysctl/kernel.txt: fix softlockup_thresh description
    dmi scan: warn about too early calls to dmi_check_system()
    generic: redefine resource_size_t as phys_addr_t
    generic: make PFN_PHYS explicitly return phys_addr_t
    generic: add phys_addr_t for holding physical addresses
    softirq: allocate less vectors
    IO resources: fix/remove printk
    printk: robustify printk, update comment
    printk: robustify printk, fix #2
    printk: robustify printk, fix
    printk: robustify printk

    Fixed up conflicts in:
    arch/powerpc/include/asm/types.h
    arch/powerpc/platforms/Kconfig.cputype
    manually.

    Linus Torvalds
     
  • The PCI core wants to reorder the devices in the bus list. So move this
    functionality out of the pci core and into the driver core so that
    anyone else can also do this if needed. This also lets us change how
    struct device is attached to drivers in the future without messing with
    the PCI core.

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

    Greg Kroah-Hartman
     

15 Oct, 2008

3 commits


12 Oct, 2008

1 commit


11 Oct, 2008

1 commit


03 Oct, 2008

1 commit

  • This is loosely based on a patch by Jesse Barnes to check the user-space
    PCI mappings though the sysfs interfaces. Quoting Jesse's original
    explanation:

    It's fairly common for applications to map PCI resources through sysfs.
    However, with the current implementation, it's possible for an application
    to map far more than the range corresponding to the resourceN file it
    opened. This patch plugs that hole by checking the range at mmap time,
    similar to what is done on platforms like sparc64 in their lower level
    PCI remapping routines.

    It was initially put together to help debug the e1000e NVRAM corruption
    problem, since we initially thought an X driver might be walking past the
    end of one of its mappings and clobbering the NVRAM. It now looks like
    that's not the case, but doing the check is still important for obvious
    reasons.

    and this version of the patch differs in that it uses a helper function
    to clarify the code, and does all the checks in pages (instead of bytes)
    in order to avoid overflows when doing "<< PAGE_SHIFT" etc.

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

    Linus Torvalds
     

26 Sep, 2008

1 commit

  • IO resource and ioremap debugging uncovered this ioremap() done
    by drivers/pci/hotplug/ibmphp_ebda.c:

    initcall pci_hotplug_init+0x0/0x41 returned 0 after 3 msecs
    calling ibmphp_init+0x0/0x360 @ 1
    ibmphpd: IBM Hot Plug PCI Controller Driver version: 0.6
    resource map sanity check conflict: 0x9f800 0xaf5e7 0x9f800 0x9ffff reserved
    ------------[ cut here ]------------
    WARNING: at arch/x86/mm/ioremap.c:175 __ioremap_caller+0x5c/0x226()
    Pid: 1, comm: swapper Not tainted 2.6.27-rc7-tip-00914-g347b10f-dirty #36038
    [] warn_on_slowpath+0x41/0x68
    [] ? __lock_acquire+0x9ba/0xa7f
    [] ? do_flush_tlb_all+0x0/0x59
    [] ? smp_call_function_mask+0x74/0x17d
    [] ? do_flush_tlb_all+0x0/0x59
    [] ? printk+0x1a/0x1c
    [] ? iomem_map_sanity_check+0x82/0x8c
    [] ? _read_unlock+0x22/0x25
    [] ? iomem_map_sanity_check+0x82/0x8c
    [] ? trace_hardirqs_off+0xb/0xd
    [] __ioremap_caller+0x5c/0x226
    [] ? trace_hardirqs_on+0xb/0xd
    [] ? iounmap+0x9d/0xa5
    [] ioremap_nocache+0x15/0x17
    [] ? ioremap+0xd/0xf
    [] ioremap+0xd/0xf
    [] ibmphp_access_ebda+0x60/0xa0e
    [] ibmphp_init+0xb5/0x360
    [] do_one_initcall+0x57/0x138
    [] ? ibmphp_init+0x0/0x360
    [] ? trace_hardirqs_on+0xb/0xd
    [] ? __queue_work+0x2b/0x30
    [] ? ibmphp_init+0x0/0x360
    [] kernel_init+0x17b/0x1e2
    [] ? kernel_init+0x0/0x1e2
    [] kernel_thread_helper+0x7/0x10
    =======================
    ---[ end trace a7919e7f17c0a725 ]---
    initcall ibmphp_init+0x0/0x360 returned -19 after 144 msecs
    calling zt5550_init+0x0/0x6a @ 1

    the problem is this code:

    io_mem = ioremap (ebda_seg<

    Ingo Molnar
     

17 Sep, 2008

2 commits

  • pci_get_subsys() changed in 2.6.26 so that the from pointer is modified
    when the call is being invoked, so fix up the 'const' marking of it that
    the compiler is complaining about.

    Reported-by: Rufus & Azrael
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Jesse Barnes

    Greg KH
     
  • pcie_aspm=force did not work because aspm_force was being double negated
    leading to the sanity check failing. Moving a bracket should fix this.

    Acked-by: Alan Cox
    Signed-off-by: Sitsofe Wheeler
    Signed-off-by: Jesse Barnes

    Sitsofe Wheeler
     

14 Sep, 2008

3 commits


13 Sep, 2008

1 commit


11 Sep, 2008

1 commit

  • This patch fixes an obvious bug (loop was never entered) caused by
    commit 820943b6fc4781621dee52ba026106758a727dd3
    (pciehp: cleanup pcie_poll_cmd).

    Reported-by: Adrian Bunk
    Signed-off-by: Adrian Bunk
    Acked-by: Kenji Kaneshige
    Signed-off-by: Jesse Barnes

    Adrian Bunk
     

10 Sep, 2008

6 commits

  • Ingo Molnar
     
  • Paul Mackerras
     
  • Commit fe99740cac117f208707488c03f3789cf4904957 (construct one
    fakephp slot per PCI slot) introduced a regression, causing a
    deadlock when removing a PCI device.

    We also never actually removed the device from the PCI core.

    So we:

    - remove the device from the PCI core
    - do not directly call remove_slot() to prevent deadlock

    Yu Zhao reported and diagnosed this defect.

    Signed-off-by: Alex Chiang
    Acked-by: Yu Zhao
    Cc: Matthew Wilcox
    Cc: Kristen Carlson Accardi
    Signed-off-by: Andrew Morton
    Signed-off-by: Jesse Barnes

    Alex Chiang
     
  • Again, the cleaned up code introduced some resource warnings:
    drivers/pci/setup-bus.c: In function 'pci_bus_dump_res':
    drivers/pci/setup-bus.c:542: warning: format '%llx' expects type 'long long unsigned int', but argument 5 has type 'resource_size_t'
    drivers/pci/setup-bus.c:542: warning: format '%llx' expects type 'long long unsigned int', but argument 6 has type 'resource_size_t'

    Fix those up too.

    Signed-off-by: Johann Felix Soden
    Signed-off-by: Jesse Barnes

    Johann Felix Soden
     
  • The cleaned up resource code in probe.c introduced some warnings:
    drivers/pci/probe.c: In function 'pci_read_bridge_bases':
    drivers/pci/probe.c:386: warning: format '%llx' expects type 'long long unsigned int', but argument 3 has type 'resource_size_t'
    drivers/pci/probe.c:386: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'
    drivers/pci/probe.c:398: warning: format '%llx' expects type 'long long unsigned int', but argument 3 has type 'resource_size_t'
    drivers/pci/probe.c:398: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'
    drivers/pci/probe.c:434: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'resource_size_t'
    drivers/pci/probe.c:434: warning: format '%llx' expects type 'long long unsigned int', but argument 5 has type 'resource_size_t'

    So fix them up.

    Signed-off-by: Johann Felix Soden
    Signed-off-by: Jesse Barnes

    Johann Felix Soden
     
  • Some BIOSes (the Intel DG33BU, for example) wrongly claim to have DMAR
    when they don't. Avoid the resulting crashes when it doesn't work as
    expected.

    Signed-off-by: David Woodhouse
    Acked-by: Ingo Molnar
    Signed-off-by: Jesse Barnes

    David Woodhouse
     

06 Sep, 2008

1 commit

  • Some BIOSes (the Intel DG33BU, for example) wrongly claim to have DMAR
    when they don't. Avoid the resulting crashes when it doesn't work as
    expected.

    I'd still be grateful if someone could test it on a DG33BU with the old
    BIOS though, since I've killed mine. I tested the DMI version, but not
    this one.

    Signed-off-by: David Woodhouse
    Signed-off-by: Ingo Molnar

    David Woodhouse
     

04 Sep, 2008

1 commit

  • Commit 884525655d07fdee9245716b998ecdc45cdd8007 ("PCI: clean up resource
    alignment management") changed the resource handling to mark how a
    resource was aligned on a per-resource basis.

    Thus, instead of looking at the resource number to determine whether it
    was a bridge resource or a regular resource (they have different
    alignment rules), we should just ask the resource for its alignment
    directly.

    The reason this broke only cardbus resources was that for the other
    types of resources, the old way of deciding alignment actually still
    happened to work. But CardBus bridge resources had been changed by
    commit 934b7024f0ed29003c95cef447d92737ab86dc4f ("Fix cardbus resource
    allocation") to look more like regular resources than PCI bridge
    resources from an alignment handling standpoint.

    Reported-and-tested-by: Andrew Morton
    Cc: Ivan Kokshaysky
    Cc: Jesse Barnes
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

22 Aug, 2008

3 commits

  • Alex Chiang and Matthew Wilcox pointed out that pci_get_dev_by_id() does
    not properly decrement the reference on the from pointer if it is
    present, like the documentation for the function states it will.

    It fixes a pretty bad leak in the hotplug core (we were leaking an
    entire struct pci_dev for each function of each offlined card, the first
    time around; subsequent onlines/offlines were ok).

    Cc: Matthew Wilcox
    Cc: stable
    Tested-by: Alex Chiang
    Acked-by: Alex Chiang
    Signed-off-by: Greg Kroah-Hartman
    Signed-off-by: Jesse Barnes

    Greg KH
     
  • Commit ef0ff95f136f0f2d035667af5d18b824609de320 (shpchp: fix slot name)
    introduces the shpchp_slot_with_bus module parameter, which was intended
    to help work around broken firmware that assigns the same name to multiple
    slots.

    Commit b3bd307c628af2f0a581c42d5d7e4bcdbbf64b6a (shpchp: add message about
    shpchp_slot_with_bus option) tells the user to use the above parameter
    in the event of a name collision.

    This approach is sub-optimal because it requires too much work from
    the user.

    Instead, let's rename the slot on behalf of the user. If firmware
    assigns the name N to multiple slots, then:

    The first registered slot is assigned N
    The second registered slot is assigned N-1
    The third registered slot is assigned N-2
    The Mth registered slot becomes N-M

    In the event we overflow the slot->name parameter, we report an
    error to the user.

    This is a temporary fix until the entire PCI core can be reworked
    such that individual drivers no longer have to manage their own
    slot names.

    Tested-by: Kenji Kaneshige
    Acked-by: Kenji Kaneshige
    Signed-off-by: Alex Chiang
    Signed-off-by: Jesse Barnes

    Alex Chiang
     
  • Commit 3800345f723fd130d50434d4717b99d4a9f383c8 (pciehp: fix slot name)
    introduces the pciehp_slot_with_bus module parameter, which was intended
    to help work around broken firmware that assigns the same name to multiple
    slots.

    Commit 9e4f2e8d4ddb04ad16a3828cd9a369a5a5287009 (pciehp: add message about
    pciehp_slot_with_bus option) tells the user to use the above parameter
    in the event of a name collision.

    This approach is sub-optimal because it requires too much work from
    the user.

    Instead, let's rename the slot on behalf of the user. If firmware
    assigns the name N to multiple slots, then:

    The first registered slot is assigned N
    The second registered slot is assigned N-1
    The third registered slot is assigned N-2
    The Mth registered slot becomes N-M

    In the event we overflow the slot->name parameter, we report an
    error to the user.

    This is a temporary fix until the entire PCI core can be reworked
    such that individual drivers no longer have to manage their own
    slot names.

    Tested-by: Kenji Kaneshige
    Acked-by: Kenji Kaneshige
    Signed-off-by: Alex Chiang
    Signed-off-by: Jesse Barnes

    Alex Chiang
     

20 Aug, 2008

1 commit

  • Commit f46753c5e354b857b20ab8e0fe7b2579831dc369 ("PCI: introduce pci_slot") removed the need for this error path. Eliminate this warning:

    drivers/pci/hotplug/rpaphp_slot.c: In function 'rpaphp_register_slot':
    drivers/pci/hotplug/rpaphp_slot.c:151: warning: label 'sysfs_fail' defined but not used

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Paul Mackerras

    Stephen Rothwell
     

19 Aug, 2008

4 commits


14 Aug, 2008

1 commit


08 Aug, 2008

3 commits


07 Aug, 2008

2 commits