21 Mar, 2009

4 commits

  • This interface allows the user to force a rescan of the device's
    parent bus and all subordinate buses, and rediscover devices removed
    earlier from this part of the device tree.

    Cc: Trent Piepho
    Signed-off-by: Alex Chiang
    Signed-off-by: Jesse Barnes

    Alex Chiang
     
  • This patch adds an attribute named "remove" to a PCI device's sysfs
    directory. Writing a non-zero value to this attribute will remove the PCI
    device and any children of it.

    Trent Piepho wrote the original implementation and documentation.

    Thanks to Vegard Nossum for testing under kmemcheck and finding locking
    issues with the sysfs interface.

    Cc: Trent Piepho
    Tested-by: Vegard Nossum
    Signed-off-by: Alex Chiang
    Signed-off-by: Jesse Barnes

    Alex Chiang
     
  • This interface allows the user to force a rescan of all PCI buses
    in system, and rediscover devices that have been removed earlier.

    pci_bus_attrs implementation from Trent Piepho.

    Thanks to Vegard Nossum for discovering locking issues with the
    sysfs interface.

    Cc: Trent Piepho
    Signed-off-by: Alex Chiang
    Signed-off-by: Jesse Barnes

    Alex Chiang
     
  • X really would like to know which VGA device was considered the boot
    device by the system. The x86 PCI fixups have support for discovering
    this but we provide no way to expose it to userspace.

    This adds a sysfs file per VGA class device which has the value 0 for
    non the boot device or unknown, and 1 if the VGA device is the boot
    device.

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

    Dave Airlie
     

20 Mar, 2009

1 commit

  • This closes http://bugzilla.kernel.org/show_bug.cgi?id=10893
    which is a showstopper for X development on alpha.

    The generic HAVE_PCI_MMAP code (drivers/pci-sysfs.c) is not
    very useful since we have to deal with three different types
    of MMIO address spaces: sparse and dense mappings for old
    ev4/ev5 machines and "normal" 1:1 MMIO space (bwx) for ev56 and
    later.
    Also "write combine" mappings are meaningless on alpha - roughly
    speaking, alpha does write combining, IO reordering and other
    optimizations by default, unless user splits IO accesses
    with memory barriers.

    I think the cleanest way to deal with resource files on alpha
    is to convert the default no-op pci_create_resource_files() and
    pci_remove_resource_files() for !HAVE_PCI_MMAP case into __weak
    functions and override them with alpha specific ones.

    Another alpha hook is needed for "legacy_" resource files
    to handle sparse addressing (pci_adjust_legacy_attr).

    With the "standard" resourceN files on ev56/ev6 libpciaccess
    works "out of the box". Handling of resourceN_sparse/resourceN_dense
    files on older machines obviously requires some userland work.

    Sparse/dense stuff has been tested on sx164 (pca56/pyxis, normally
    uses bwx IO) with the kernel hacked into "cia compatible" mode.

    Signed-off-by: Ivan Kokshaysky
    Signed-off-by: Jesse Barnes

    Ivan Kokshaysky
     

05 Feb, 2009

1 commit

  • This patch makes the ROM reading code return an error to user space if
    the size of the ROM read is equal to 0.

    The patch also emits a warnings if the contents of the ROM are invalid,
    and documents the effects of the "enable" file on ROM reading.

    Signed-off-by: Timothy S. Nelson
    Acked-by: Alex Villacis-Lasso
    Signed-off-by: Jesse Barnes

    Timothy S. Nelson
     

10 Jan, 2009

1 commit

  • * 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    [IA64] fix typo in cpumask_of_pcibus()
    x86: fix x86_32 builds for summit and es7000 arch's
    cpumask: use work_on_cpu in acpi-cpufreq.c for read_measured_perf_ctrs
    cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write
    cpumask: use cpumask_var_t in acpi-cpufreq.c
    cpumask: use work_on_cpu in acpi/cstate.c
    cpumask: convert struct cpufreq_policy to cpumask_var_t
    cpumask: replace CPUMASK_ALLOC etc with cpumask_var_t
    x86: cleanup remaining cpumask_t ops in smpboot code
    cpumask: update pci_bus_show_cpuaffinity to use new cpumask API
    cpumask: update local_cpus_show to use new cpumask API
    ia64: cpumask fix for is_affinity_mask_valid()

    Linus Torvalds
     

08 Jan, 2009

5 commits

  • Change PCI VPD API which was only used by sysfs to something usable
    in drivers.
    * move iteration over multiple words to the low level
    * use conventional types for arguments
    * add exportable wrapper

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

    Stephen Hemminger
     
  • This patch moves all definitions of the PCI resource names to an 'enum',
    and also replaces some hard-coded resource variables with symbol
    names. This change eases introduction of device specific resources.

    Reviewed-by: Bjorn Helgaas
    Signed-off-by: Yu Zhao
    Signed-off-by: Jesse Barnes

    Yu Zhao
     
  • PCI devices have three settable boolean attributes, enable,
    broken_parity_status, and msi_bus.

    The store functions for these would silently interpret "0x01" as false,
    "1llogical" as true, and "true" would be (silently!) ignored and do
    nothing.

    This is inconsistent with typical sysfs handling of settable attributes,
    and just plain doesn't make much sense.

    So, use strict_strtoul(), which was created for this purpose. The store
    functions will treat a value of 0 as false, non-zero as true, and return
    -EINVAL for a parse failure.

    Additionally, is_enabled_store() and msi_bus_store() return -EPERM if
    CAP_SYS_ADMIN is lacking, rather than silently doing nothing. This is more
    typical behavior for sysfs attributes that need a capability.

    And msi_bus_store() will only print the "forced subordinate bus ..."
    warning if the MSI flag was actually forced to a different value.

    Signed-off-by: Trent Piepho
    Signed-off-by: Jesse Barnes

    Trent Piepho
     
  • Device drivers that use pci_request_regions() (and similar APIs) have a
    reasonable expectation that they are the only ones accessing their device.
    As part of the e1000e hunt, we were afraid that some userland (X or some
    bootsplash stuff) was mapping the MMIO region that the driver thought it
    had exclusively via /dev/mem or via various sysfs resource mappings.

    This patch adds the option for device drivers to cause their reserved
    regions to the "banned from /dev/mem use" list, so now both kernel memory
    and device-exclusive MMIO regions are banned.
    NOTE: This is only active when CONFIG_STRICT_DEVMEM is set.

    In addition to the config option, a kernel parameter iomem=relaxed is
    provided for the cases where developers want to diagnose, in the field,
    drivers issues from userspace.

    Reviewed-by: Matthew Wilcox
    Signed-off-by: Arjan van de Ven
    Signed-off-by: Jesse Barnes

    Arjan van de Ven
     
  • /proc/bus/pci allows you to mmap resource ranges too, so we should probably be
    checking to make sure the mapping is somewhat valid. Uses the same code as the recent sysfs mmap range checking patch from Linus.

    Acked-by: David Miller
    Signed-off-by: Jesse Barnes

    Jesse Barnes
     

04 Jan, 2009

1 commit


13 Dec, 2008

1 commit

  • …t_scnprintf to take pointers.

    Impact: change calling convention of existing cpumask APIs

    Most cpumask functions started with cpus_: these have been replaced by
    cpumask_ ones which take struct cpumask pointers as expected.

    These four functions don't have good replacement names; fortunately
    they're rarely used, so we just change them over.

    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Mike Travis <travis@sgi.com>
    Acked-by: Ingo Molnar <mingo@elte.hu>
    Cc: paulus@samba.org
    Cc: mingo@redhat.com
    Cc: tony.luck@intel.com
    Cc: ralf@linux-mips.org
    Cc: Greg Kroah-Hartman <gregkh@suse.de>
    Cc: cl@linux-foundation.org
    Cc: srostedt@redhat.com

    Rusty Russell
     

04 Nov, 2008

1 commit

  • pci_mmap_fits() returns the wrong answer if the sysfs resource file size
    is not a multiple of the page size. vm_end and vm_start are already
    page-aligned, so size - start < nr, causing mmap() to return EINVAL.

    Signed-off-by: Ed Swierk
    Signed-off-by: Andrew Morton
    Signed-off-by: Jesse Barnes

    Ed Swierk
     

21 Oct, 2008

3 commits

  • This adds the ability to mmap legacy IO space to the legacy_io files
    in sysfs on platforms that support it. This will allow to clean up
    X to use this instead of /dev/mem for legacy IO accesses such as
    those performed by Int10.

    While at it I moved pci_create/remove_legacy_files() to pci-sysfs.c
    where I think they belong, thus making more things statis in there
    and cleaned up some spurrious prototypes in the ia64 pci.h file

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Jesse Barnes

    Benjamin Herrenschmidt
     
  • This patch centralizes functions used to add and remove sysfs entries
    for various capabilities. With this cleanup, the code is more readable
    and easier for adding new capability related functions.

    Signed-off-by: Yu Zhao
    Signed-off-by: Jesse Barnes

    Zhao, Yu
     
  • This is a cleanup that changes all PCI configuration space size
    representations to the macros (PCI_CFG_SPACE_SIZE and
    PCI_CFG_SPACE_EXP_SIZE). And the macros are also moved from
    drivers/pci/probe.c to drivers/pci/pci.h.

    Signed-off-by: Yu Zhao
    Signed-off-by: Jesse Barnes

    Zhao, Yu
     

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
     

03 Jul, 2008

1 commit

  • For Broadcom 5706, 5708, 5709 rev. A nics, any read beyond the
    VPD end tag will hang the device. This problem was initially
    observed when a vpd entry was created in sysfs
    ('/sys/bus/pci/devices//vpd'). A read to this sysfs entry
    will dump 32k of data. Reading a full 32k will cause an access
    beyond the VPD end tag causing the device to hang. Once the device
    is hung, the bnx2 driver will not be able to reset the device.
    We believe that it is legal to read beyond the end tag and
    therefore the solution is to limit the read/write length.

    A majority of this patch is from Matthew Wilcox who gave code for
    reworking the PCI vpd size information. A PCI quirk added for the
    Broadcom NIC's to limit the read/write's.

    Signed-off-by: Benjamin Li
    Signed-off-by: Matthew Wilcox
    Signed-off-by: Jesse Barnes

    Benjamin Li
     

02 Jul, 2008

1 commit

  • Some PCI devices will lock up if we attempt to read from VPD addresses
    beyond some device-dependent limit. Until we can identify these
    devices and adjust the file size accordingly, only let root read VPD
    through sysfs to prevent a DoS by normal users.

    Signed-off-by: Ben Hutchings
    Signed-off-by: Jesse Barnes

    Ben Hutchings
     

13 Jun, 2008

1 commit


12 Jun, 2008

1 commit


22 Apr, 2008

1 commit

  • * 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
     

21 Apr, 2008

2 commits

  • 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
     
  • PCI Express ASPM defines a protocol for PCI Express components in the D0
    state to reduce Link power by placing their Links into a low power state
    and instructing the other end of the Link to do likewise. This
    capability allows hardware-autonomous, dynamic Link power reduction
    beyond what is achievable by software-only controlled power management.
    However, The device should be configured by software appropriately.
    Enabling ASPM will save power, but will introduce device latency.

    This patch adds ASPM support in Linux. It introduces a global policy for
    ASPM, a sysfs file /sys/module/pcie_aspm/parameters/policy can control
    it. The interface can be used as a boot option too. Currently we have
    below setting:
    -default, BIOS default setting
    -powersave, highest power saving mode, enable all available ASPM
    state and clock power management
    -performance, highest performance, disable ASPM and clock power
    management
    By default, the 'default' policy is used currently.

    In my test, power difference between powersave mode and performance mode
    is about 1.3w in a system with 3 PCIE links.

    Note: some devices might not work well with aspm, either because chipset
    issue or device issue. The patch provide API (pci_disable_link_state),
    driver can disable ASPM for specific device.

    Signed-off-by: Shaohua Li
    Signed-off-by: Greg Kroah-Hartman

    Shaohua Li
     

20 Apr, 2008

1 commit

  • * Cleaned up references to cpumask_scnprintf() and added new
    cpulist_scnprintf() interfaces where appropriate.

    * Fix some small bugs (or code efficiency improvments) for various uses
    of cpumask_scnprintf.

    * Clean up some checkpatch errors.

    Signed-off-by: Mike Travis
    Signed-off-by: Ingo Molnar

    Mike Travis
     

03 Feb, 2008

1 commit

  • This reverts commit 6c723d5bd89f03fc3ef627d50f89ade054d2ee3b.

    It caused build errors on non-x86 platforms, config file confusion, and
    even some boot errors on some x86-64 boxes. All around, not quite ready
    for prime-time :(

    Cc: Shaohua Li
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

02 Feb, 2008

2 commits

  • This moves the pci_bus class device to be a real struct device and at
    the same time, place it in the device tree in the correct location.

    Note, the old "bridge" symlink is now gone, but this was a non-standard
    link and no userspace program used it. If you need to determine the
    device that the bus is on, follow the standard device symlink, or walk
    up the device tree.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • PCI Express ASPM defines a protocol for PCI Express components in the D0
    state to reduce Link power by placing their Links into a low power state
    and instructing the other end of the Link to do likewise. This
    capability allows hardware-autonomous, dynamic Link power reduction
    beyond what is achievable by software-only controlled power management.
    However, The device should be configured by software appropriately.
    Enabling ASPM will save power, but will introduce device latency.

    This patch adds ASPM support in Linux. It introduces a global policy for
    ASPM, a sysfs file /sys/module/pcie_aspm/parameters/policy can control
    it. The interface can be used as a boot option too. Currently we have
    below setting:
    -default, BIOS default setting
    -powersave, highest power saving mode, enable all available ASPM
    state
    and clock power management
    -performance, highest performance, disable ASPM and clock power
    management
    By default, the 'default' policy is used currently.

    In my test, power difference between powersave mode and performance mode
    is about 1.3w in a system with 3 PCIE links.

    Signed-off-by: Shaohua Li
    Signed-off-by: Greg Kroah-Hartman

    Shaohua Li
     

29 Nov, 2007

1 commit

  • There should be a pci_dev_put when breaking out of a loop that iterates
    over calls to pci_get_device and similar functions.

    This was fixed using the following semantic patch.

    //
    @@
    identifier d;
    type T;
    expression e;
    iterator for_each_pci_dev;
    @@

    T *d;
    ...
    for_each_pci_dev(d)
    {... when != pci_dev_put(d)
    when != e = d
    (
    return d;
    |
    + pci_dev_put(d);
    ? return ...;
    )
    ...}
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Greg Kroah-Hartman

    Julia Lawall
     

17 Jul, 2007

1 commit

  • I forgot to remove capability.h from mm.h while removing sched.h! This
    patch remedies that, because the only inline function which was using
    CAP_something was made out of line.

    Cross-compile tested without regressions on:

    all powerpc defconfigs
    all mips defconfigs
    all m68k defconfigs
    all arm defconfigs
    all ia64 defconfigs

    alpha alpha-allnoconfig alpha-defconfig alpha-up
    arm
    i386 i386-allnoconfig i386-defconfig i386-up
    ia64 ia64-allnoconfig ia64-defconfig ia64-up
    m68k
    mips
    parisc parisc-allnoconfig parisc-defconfig parisc-up
    powerpc powerpc-up
    s390 s390-allnoconfig s390-defconfig s390-up
    sparc sparc-allnoconfig sparc-defconfig sparc-up
    sparc64 sparc64-allnoconfig sparc64-defconfig sparc64-up
    um-x86_64
    x86_64 x86_64-allnoconfig x86_64-defconfig x86_64-up

    as well as my two usual configs.

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

13 Jul, 2007

1 commit

  • * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (34 commits)
    PCI: Only build PCI syscalls on architectures that want them
    PCI: limit pci_get_bus_and_slot to domain 0
    PCI: hotplug: acpiphp: avoid acpiphp "cannot get bridge info" PCI hotplug failure
    PCI: hotplug: acpiphp: remove hot plug parameter write to PCI host bridge
    PCI: hotplug: acpiphp: fix slot poweroff problem on systems without _PS3
    PCI: hotplug: pciehp: wait for 1 second after power off slot
    PCI: pci_set_power_state(): check for PM capabilities earlier
    PCI: cpci_hotplug: Convert to use the kthread API
    PCI: add pci_try_set_mwi
    PCI: pcie: remove SPIN_LOCK_UNLOCKED
    PCI: ROUND_UP macro cleanup in drivers/pci
    PCI: remove pci_dac_dma_... APIs
    PCI: pci-x-pci-express-read-control-interfaces cleanups
    PCI: Fix typo in include/linux/pci.h
    PCI: pci_ids, remove double or more empty lines
    PCI: pci_ids, add atheros and 3com_2 vendors
    PCI: pci_ids, reorder some entries
    PCI: i386: traps, change VENDOR to DEVICE
    PCI: ATM: lanai, change VENDOR to DEVICE
    PCI: Change all drivers to use pci_device->revision
    ...

    Linus Torvalds
     

12 Jul, 2007

4 commits

  • Well, first of all, I don't want to change so many files either.

    What I do:
    Adding a new parameter "struct bin_attribute *" in the
    .read/.write methods for the sysfs binary attributes.

    In fact, only the four lines change in fs/sysfs/bin.c and
    include/linux/sysfs.h do the real work.
    But I have to update all the files that use binary attributes
    to make them compatible with the new .read and .write methods.
    I'm not sure if I missed any. :(

    Why I do this:
    For a sysfs attribute, we can get a pointer pointing to the
    struct attribute in the .show/.store method,
    while we can't do this for the binary attributes.
    I don't know why this is different, but this does make it not
    so handy to use the binary attributes as the regular ones.
    So I think this patch is reasonable. :)

    Who benefits from it:
    The patch that exposes ACPI tables in sysfs
    requires such an improvement.
    All the table binary attributes share the same .read method.
    Parameter "struct bin_attribute *" is used to get
    the table signature and instance number which are used to
    distinguish different ACPI table binary attributes.

    Without this parameter, we need to offer different .read methods
    for different ACPI table binary attributes.
    This is impossible as there are various ACPI tables on different
    platforms, and we don't know what they are until they are loaded.

    Signed-off-by: Zhang Rui
    Signed-off-by: Greg Kroah-Hartman

    Zhang Rui
     
  • sysfs is now completely out of driver/module lifetime game. After
    deletion, a sysfs node doesn't access anything outside sysfs proper,
    so there's no reason to hold onto the attribute owners. Note that
    often the wrong modules were accounted for as owners leading to
    accessing removed modules.

    This patch kills now unnecessary attribute->owner. Note that with
    this change, userland holding a sysfs node does not prevent the
    backing module from being unloaded.

    For more info regarding lifetime rule cleanup, please read the
    following message.

    http://article.gmane.org/gmane.linux.kernel/510293

    (tweaked by Greg to not delete the field just yet, to make it easier to
    merge things properly.)

    Signed-off-by: Tejun Heo
    Cc: Cornelia Huck
    Cc: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Tejun Heo
     
  • Currently pcibios_add_platform_entries() returns void, but could fail,
    so instead have it return an int and propagate errors up to
    pci_create_sysfs_dev_files().

    Fixes:
    arch/powerpc/kernel/pci_64.c: In function 'pcibios_add_platform_entries':
    arch/powerpc/kernel/pci_64.c:878: warning: ignoring return value of
    'device_create_file', declared with attribute warn_unused_result
    arch/powerpc/kernel/pci_32.c: In function 'pcibios_add_platform_entries':
    arch/powerpc/kernel/pci_32.c:1043: warning: ignoring return value of
    'device_create_file', declared with attribute warn_unused_result

    Signed-off-by: Michael Ellerman
    Signed-off-by: Greg Kroah-Hartman

    Michael Ellerman
     
  • I'm not sure if this is going to fly, weak symbols work on the compilers I'm
    using, but whether they work for all of the affected architectures I can't say.
    I've cc'ed as many arch maintainers/lists as I could find.

    But assuming they do, we can use a weak empty definition of
    pcibios_add_platform_entries() to avoid having an empty definition on every
    arch.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Greg Kroah-Hartman

    Michael Ellerman
     

03 May, 2007

2 commits

  • pci_create_sysfs_dev_files() should call pci_remove_resource_files() in
    its error path, to match the call it makes to pci_create_resource_files().

    Signed-off-by: Michael Ellerman
    Signed-off-by: Greg Kroah-Hartman

    Michael Ellerman
     
  • At one time, if a BIOS ROM shadow was detected for the boot video
    device (stored at offset 0xc0000), we'd set a special resource flag,
    IORESOURCE_ROM_SHADOW, so that the sysfs ROM file code could handle
    it properly. That broke along the way somewhere though, so current
    kernels will be missing 'rom' files in sysfs if the video device
    doesn't have an explicit ROM BAR.

    This patch fixes the regression by moving the video fixup quirk to a
    little later in the boot cycle (to avoid having its work undone by
    PCI resource allocation) and checking in the PCI sysfs code whether
    a rom file should be created due to a shadow resource, which is also
    moved to a little later in the boot cycle so it will occur after the
    video fixup. Tested and works on my i386 test box.

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

    Jesse Barnes
     

17 Feb, 2007

1 commit