21 Jul, 2008

16 commits

  • Unless I miss something that's code for a sparc machine even the sparc
    code no longer supports that got copied to m68k when these files were
    copied.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • Allow no CPU/platform type for allnoconfig
    - Provide a dummy value for FPSTATESIZE if no CPU type was selected
    - Provide a dummy value for NR_IRQS if no platform type was selected
    - Warn the user if no CPU or platform type was selected

    Note: you still cannot build an allnoconfig kernel, as CONFIG_SWAP=n doesn't
    build and we cannot easily fix that
    (http://groups.google.com/group/linux.kernel/browse_thread/thread/d430c78b07e1827b)

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • This patch removes CVS keywords that weren't updated for a long time
    from comments.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • * 'configfs-fixup-ptr-error' of git://oss.oracle.com/git/jlbec/linux-2.6:
    configfs: Allow ->make_item() and ->make_group() to return detailed errors.
    Revert "configfs: Allow ->make_item() and ->make_group() to return detailed errors."

    Linus Torvalds
     
  • Move more bits into the tty_port structure

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Fix up the termios of the people who have not yet got with the program

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Switch cyclades to use the new tty_port structure

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Switch the stallion driver to use the tty_port structure

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Switch istallion to use the new tty_port structure

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Switch drivers using the old "generic serial" driver to use the tty_port
    structures

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Switch esp to use the new tty_port structures

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Coding style clean up and white space tidy

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Switch the serial_core based drivers to use the new tty_port structure.
    We can't quite use all of it yet because of the dynamically allocated
    extras in the serial_core layer.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Every tty driver has its own concept of a port structure and because
    they all differ we cannot extract commonality. Begin fixing this by
    creating a structure drivers can elect to use so that over time we can
    push fields into this and create commonality and then introduce common
    methods.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Move the line disciplines towards a conventional ->ops arrangement. For
    the moment the actual 'tty_ldisc' struct in the tty is kept as part of
    the tty struct but this can then be changed if it turns out that when it
    all settles down we want to refcount ldiscs separately to the tty.

    Pull the ldisc code out of /proc and put it with our ldisc code.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Serial drivers using DMA (like the atmel_serial driver) tend to get very
    confused when the xmit buffer is flushed and nobody told them. They
    also tend to spew a lot of garbage since the DMA engine keeps running
    after the buffer is flushed and possibly refilled with unrelated data.

    This patch adds a new flush_buffer operation to the uart_ops struct,
    along with a call to it from uart_flush_buffer() right after the xmit
    buffer has been cleared. The driver can implement this in order to
    syncronize its internal DMA state with the xmit buffer when the buffer
    is flushed.

    Signed-off-by: Haavard Skinnemoen
    Acked-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     

18 Jul, 2008

6 commits

  • The configfs operations ->make_item() and ->make_group() currently
    return a new item/group. A return of NULL signifies an error. Because
    of this, -ENOMEM is the only return code bubbled up the stack.

    Multiple folks have requested the ability to return specific error codes
    when these operations fail. This patch adds that ability by changing the
    ->make_item/group() ops to return ERR_PTR() values. These errors are
    bubbled up appropriately. NULL returns are changed to -ENOMEM for
    compatibility.

    Also updated are the in-kernel users of configfs.

    This is a rework of reverted commit 11c3b79218390a139f2d474ee1e983a672d5839a.

    Signed-off-by: Joel Becker

    Joel Becker
     
  • This reverts commit 11c3b79218390a139f2d474ee1e983a672d5839a. The code
    will move to PTR_ERR().

    Signed-off-by: Joel Becker

    Joel Becker
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2:
    [PATCH] ocfs2: fix oops in mmap_truncate testing
    configfs: call drop_link() to cleanup after create_link() failure
    configfs: Allow ->make_item() and ->make_group() to return detailed errors.
    configfs: Fix failing mkdir() making racing rmdir() fail
    configfs: Fix deadlock with racing rmdir() and rename()
    configfs: Make configfs_new_dirent() return error code instead of NULL
    configfs: Protect configfs_dirent s_links list mutations
    configfs: Introduce configfs_dirent_lock
    ocfs2: Don't snprintf() without a format.
    ocfs2: Fix CONFIG_OCFS2_DEBUG_FS #ifdefs
    ocfs2/net: Silence build warnings on sparc64
    ocfs2: Handle error during journal load
    ocfs2: Silence an error message in ocfs2_file_aio_read()
    ocfs2: use simple_read_from_buffer()
    ocfs2: fix printk format warnings with OCFS2_FS_STATS=n
    [PATCH 2/2] ocfs2: Instrument fs cluster locks
    [PATCH 1/2] ocfs2: Add CONFIG_OCFS2_FS_STATS config option

    Linus Torvalds
     
  • …git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86: fix asm/e820.h for userspace inclusion
    x86: fix numaq_tsc_disable
    x86: fix kernel_physical_mapping_init() for large x86 systems

    Linus Torvalds
     
  • asm-x86/e820.h is included from userspace. 'x86: make e820.c to have
    common functions' (b79cd8f1268bab57ff85b19d131f7f23deab2dee) broke it:

    make -C Documentation/lguest
    cc -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include
    lguest.c -lz -o lguest
    In file included from ../../include/asm-x86/bootparam.h:8,
    from lguest.c:45:
    ../../include/asm/e820.h:66: error: expected ‘)’ before ‘start’
    ../../include/asm/e820.h:67: error: expected ‘)’ before ‘start’
    ../../include/asm/e820.h:68: error: expected ‘)’ before ‘start’
    ../../include/asm/e820.h:72: error: expected ‘=’, ‘,’, ‘;’, ‘asm’
    or ‘__attribute__’ before ‘e820_update_range’
    ...

    Signed-off-by: Rusty Russell
    Cc: Yinghai Lu
    Signed-off-by: Ingo Molnar

    Rusty Russell
     
  • * 'ptrace-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-utrace:
    fix dangling zombie when new parent ignores children
    do_wait: return security_task_wait() error code in place of -ECHILD
    ptrace children revamp
    do_wait reorganization

    Linus Torvalds
     

17 Jul, 2008

18 commits

  • List of major changes:
    - split qdio driver into several files
    - seperation of thin interrupt code
    - improved handling for multiple thin interrupt devices
    - inbound and outbound processing now always runs in tasklet context
    - significant less tasklet schedules per interrupt needed
    - merged qebsm with non-qebsm handling
    - cleanup qdio interface and added kerneldoc
    - coding style

    Reviewed-by: Cornelia Huck
    Reviewed-by: Utz Bacher
    Reviewed-by: Ursula Braun
    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky
    Signed-off-by: Heiko Carstens

    Jan Glauber
     
  • Kernel headers shouldn't expose functions to userspace.

    Cc: Cornelia Huck
    Signed-off-by: Adrian Bunk
    Signed-off-by: Heiko Carstens
    Cc: Martin Schwidefsky

    Adrian Bunk
     
  • ptrace no longer fiddles with the children/sibling links, and the
    old ptrace_children list is gone. Now ptrace, whether of one's own
    children or another's via PTRACE_ATTACH, just uses the new ptraced
    list instead.

    There should be no user-visible difference that matters. The only
    change is the order in which do_wait() sees multiple stopped
    children and stopped ptrace attachees. Since wait_task_stopped()
    was changed earlier so it no longer reorders the children list, we
    already know this won't cause any new problems.

    Signed-off-by: Roland McGrath

    Roland McGrath
     
  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (72 commits)
    Revert "x86/PCI: ACPI based PCI gap calculation"
    PCI: remove unnecessary volatile in PCIe hotplug struct controller
    x86/PCI: ACPI based PCI gap calculation
    PCI: include linux/pm_wakeup.h for device_set_wakeup_capable
    PCI PM: Fix pci_prepare_to_sleep
    x86/PCI: Fix PCI config space for domains > 0
    Fix acpi_pm_device_sleep_wake() by providing a stub for CONFIG_PM_SLEEP=n
    PCI: Simplify PCI device PM code
    PCI PM: Introduce pci_prepare_to_sleep and pci_back_from_sleep
    PCI ACPI: Rework PCI handling of wake-up
    ACPI: Introduce new device wakeup flag 'prepared'
    ACPI: Introduce acpi_device_sleep_wake function
    PCI: rework pci_set_power_state function to call platform first
    PCI: Introduce platform_pci_power_manageable function
    ACPI: Introduce acpi_bus_power_manageable function
    PCI: make pci_name use dev_name
    PCI: handle pci_name() being const
    PCI: add stub for pci_set_consistent_dma_mask()
    PCI: remove unused arch pcibios_update_resource() functions
    PCI: fix pci_setup_device()'s sprinting into a const buffer
    ...

    Fixed up conflicts in various files (arch/x86/kernel/setup_64.c,
    arch/x86/pci/irq.c, arch/x86/pci/pci.h, drivers/acpi/sleep/main.c,
    drivers/pci/pci.c, drivers/pci/pci.h, include/acpi/acpi_bus.h) from x86
    and ACPI updates manually.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: (68 commits)
    sdio_uart: Fix SDIO break control to now return success or an error
    mmc: host driver for Ricoh Bay1Controllers
    sdio: sdio_io.c Fix sparse warnings
    sdio: fix the use of hard coded timeout value.
    mmc: OLPC: update vdd/powerup quirk comment
    mmc: fix spares errors of sdhci.c
    mmc: remove multiwrite capability
    wbsd: fix bad dma_addr_t conversion
    atmel-mci: Driver for Atmel on-chip MMC controllers
    mmc: fix sdio_io sparse errors
    mmc: wbsd.c fix shadowing of 'dma' variable
    MMC: S3C24XX: Refuse incorrectly aligned transfers
    MMC: S3C24XX: Add maintainer entry
    MMC: S3C24XX: Update error debugging.
    MMC: S3C24XX: Add media presence test to request handling.
    MMC: S3C24XX: Fix use of msecs where jiffies are needed
    MMC: S3C24XX: Add MODULE_ALIAS() entries for the platform devices
    MMC: S3C24XX: Fix s3c2410_dma_request() return code check.
    MMC: S3C24XX: Allow card-detect on non-IRQ capable pin
    MMC: S3C24XX: Ensure host->mrq->data is valid
    ...

    Manually fixed up bogus executable bits on drivers/mmc/core/sdio_io.c
    and include/linux/mmc/sdio_func.h when merging.

    Linus Torvalds
     
  • * 'for_linus' of git://git.infradead.org/~dedekind/ubifs-2.6:
    UBIFS: include to compilation
    UBIFS: add new flash file system
    UBIFS: add brief documentation
    MAINTAINERS: add UBIFS section
    do_mounts: allow UBI root device name
    VFS: export sync_sb_inodes
    VFS: move inode_lock into sync_sb_inodes

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (76 commits)
    IDE: Report errors during drive reset back to user space
    Update documentation of HDIO_DRIVE_RESET ioctl
    IDE: Remove unused code
    IDE: Fix HDIO_DRIVE_RESET handling
    hd.c: remove the #include
    update the BLK_DEV_HD help text
    move ide/legacy/hd.c to drivers/block/
    ide/legacy/hd.c: use late_initcall()
    remove BLK_DEV_HD_ONLY
    ide: endian annotations in ide-floppy.c
    ide-floppy: zero out the whole struct ide_atapi_pc on init
    ide-floppy: fold idefloppy_create_test_unit_ready_cmd into idefloppy_open
    ide-cd: move request prep chunk from cdrom_do_newpc_cont to rq issue path
    ide-cd: move request prep from cdrom_start_rw_cont to rq issue path
    ide-cd: move request prep from cdrom_start_seek_continuation to rq issue path
    ide-cd: fold cdrom_start_seek into ide_cd_do_request
    ide-cd: simplify request issuing path
    ide-cd: mv ide_do_rw_cdrom ide_cd_do_request
    ide-cd: cdrom_start_seek: remove unused argument block
    ide-cd: ide_do_rw_cdrom: add the catch-all bad request case to the if-else block
    ...

    Linus Torvalds
     
  • …k/linux-acpi-merge-2.6

    * 'release-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-acpi-merge-2.6: (87 commits)
    Fix FADT parsing
    Add the ability to reset the machine using the RESET_REG in ACPI's FADT table.
    ACPI: use dev_printk when possible
    PNPACPI: add support for HP vendor-specific CCSR descriptors
    PNP: avoid legacy IDE IRQs
    PNP: convert resource options to single linked list
    ISAPNP: handle independent options following dependent ones
    PNP: remove extra 0x100 bit from option priority
    PNP: support optional IRQ resources
    PNP: rename pnp_register_*_resource() local variables
    PNPACPI: ignore _PRS interrupt numbers larger than PNP_IRQ_NR
    PNP: centralize resource option allocations
    PNP: remove redundant pnp_can_configure() check
    PNP: make resource assignment functions return 0 (success) or -EBUSY (failure)
    PNP: in debug resource dump, make empty list obvious
    PNP: improve resource assignment debug
    PNP: increase I/O port & memory option address sizes
    PNP: introduce pnp_irq_mask_t typedef
    PNP: make resource option structures private to PNP subsystem
    PNP: define PNP-specific IORESOURCE_IO_* flags alongside IRQ, DMA, MEM
    ...

    Linus Torvalds
     
  • Fail integrity check gracefully when request does not have a bio
    attached (BLOCK_PC).

    Signed-off-by: Martin K. Petersen
    Signed-off-by: Linus Torvalds

    Martin K. Petersen
     
  • * git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (82 commits)
    NFSv4: Remove BKL from the nfsv4 state recovery
    SUNRPC: Remove the BKL from the callback functions
    NFS: Remove BKL from the readdir code
    NFS: Remove BKL from the symlink code
    NFS: Remove BKL from the sillydelete operations
    NFS: Remove the BKL from the rename, rmdir and unlink operations
    NFS: Remove BKL from NFS lookup code
    NFS: Remove the BKL from nfs_link()
    NFS: Remove the BKL from the inode creation operations
    NFS: Remove BKL usage from open()
    NFS: Remove BKL usage from the write path
    NFS: Remove the BKL from the permission checking code
    NFS: Remove attribute update related BKL references
    NFS: Remove BKL requirement from attribute updates
    NFS: Protect inode->i_nlink updates using inode->i_lock
    nfs: set correct fl_len in nlmclnt_test()
    SUNRPC: Support registering IPv6 interfaces with local rpcbind daemon
    SUNRPC: Refactor rpcb_register to make rpcbindv4 support easier
    SUNRPC: None of rpcb_create's callers wants a privileged source port
    SUNRPC: Introduce a specific rpcb_create for contacting localhost
    ...

    Linus Torvalds
     
  • Signed-off-by: Aaron Durbin
    Signed-off-by: Andi Kleen
    Cc: Len Brown
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton

    Aaron Durbin
     
  • ISAPNP, PNPBIOS, and ACPI describe the "possible resource settings" of
    a device, i.e., the possibilities an OS bus driver has when it assigns
    I/O port, MMIO, and other resources to the device.

    PNP used to maintain this "possible resource setting" information in
    one independent option structure and a list of dependent option
    structures for each device. Each of these option structures had lists
    of I/O, memory, IRQ, and DMA resources, for example:

    dev
    independent options
    ind-io0 -> ind-io1 ...
    ind-mem0 -> ind-mem1 ...
    ...
    dependent option set 0
    dep0-io0 -> dep0-io1 ...
    dep0-mem0 -> dep0-mem1 ...
    ...
    dependent option set 1
    dep1-io0 -> dep1-io1 ...
    dep1-mem0 -> dep1-mem1 ...
    ...
    ...

    This data structure was designed for ISAPNP, where the OS configures
    device resource settings by writing directly to configuration
    registers. The OS can write the registers in arbitrary order much
    like it writes PCI BARs.

    However, for PNPBIOS and ACPI devices, the OS uses firmware interfaces
    that perform device configuration, and it is important to pass the
    desired settings to those interfaces in the correct order. The OS
    learns the correct order by using firmware interfaces that return the
    "current resource settings" and "possible resource settings," but the
    option structures above doesn't store the ordering information.

    This patch replaces the independent and dependent lists with a single
    list of options. For example, a device might have possible resource
    settings like this:

    dev
    options
    ind-io0 -> dep0-io0 -> dep1->io0 -> ind-io1 ...

    All the possible settings are in the same list, in the order they
    come from the firmware "possible resource settings" list. Each entry
    is tagged with an independent/dependent flag. Dependent entries also
    have a "set number" and an optional priority value. All dependent
    entries must be assigned from the same set. For example, the OS can
    use all the entries from dependent set 0, or all the entries from
    dependent set 1, but it cannot mix entries from set 0 with entries
    from set 1.

    Prior to this patch PNP didn't keep track of the order of this list,
    and it assigned all independent options first, then all dependent
    ones. Using the example above, that resulted in a "desired
    configuration" list like this:

    ind->io0 -> ind->io1 -> depN-io0 ...

    instead of the list the firmware expects, which looks like this:

    ind->io0 -> depN-io0 -> ind-io1 ...

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Andi Kleen
    Acked-by: Rene Herman
    Signed-off-by: Len Brown

    Bjorn Helgaas
     
  • This patch adds an IORESOURCE_IRQ_OPTIONAL flag for use when
    assigning resources to a device. If the flag is set and we are
    unable to assign an IRQ to the device, we can leave the IRQ
    disabled but allow the overall resource allocation to succeed.

    Some devices request an IRQ, but can run without an IRQ
    (possibly with degraded performance). This flag lets us run
    the device without the IRQ instead of just leaving the
    device disabled.

    This is a reimplementation of this previous change by Rene
    Herman :
    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3b73a223661ed137c5d3d2635f954382e94f5a43

    I reimplemented this for two reasons:
    - to prepare for converting all resource options into a single linked
    list, as opposed to the per-resource-type lists we have now, and
    - to preserve the order and number of resource options.

    In PNPBIOS and ACPI, we configure a device by giving firmware a
    list of resource assignments. It is important that this list
    has exactly the same number of resources, in the same order,
    as the "template" list we got from the firmware in the first
    place.

    The problem of a sound card MPU401 being left disabled for want of
    an IRQ was reported by Uwe Bugla .

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Andi Kleen
    Acked-by: Rene Herman
    Signed-off-by: Len Brown

    Bjorn Helgaas
     
  • Nothing outside the PNP subsystem should need access to a
    device's resource options, so this patch moves the option
    structure declarations to a private header file.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Andi Kleen
    Acked-by: Rene Herman
    Signed-off-by: Len Brown

    Bjorn Helgaas
     
  • PNP previously defined PNP_PORT_FLAG_16BITADDR and PNP_PORT_FLAG_FIXED
    in a private header file, but put those flags in struct resource.flags
    fields. Better to make them IORESOURCE_IO_* flags like the existing
    IRQ, DMA, and MEM flags.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Andi Kleen
    Acked-by: Rene Herman
    Signed-off-by: Len Brown

    Bjorn Helgaas
     
  • As part of a heuristic to identify modem devices, 8250_pnp.c
    checks to see whether a device can be configured at any of the
    legacy COM port addresses.

    This patch moves the code that traverses the PNP "possible resource
    options" from 8250_pnp.c to the PNP subsystem. This encapsulation
    is important because a future patch will change the implementation
    of those resource options.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Andi Kleen
    Acked-by: Rene Herman
    Signed-off-by: Len Brown

    Bjorn Helgaas
     
  • PNP used to have a fixed-size pnp_resource_table for tracking the
    resources used by a device. This table often overflowed, so we've
    had to increase the table size, which wastes memory because most
    devices have very few resources.

    This patch replaces the table with a linked list of resources where
    the entries are allocated on demand.

    This removes messages like these:

    pnpacpi: exceeded the max number of IO resources
    00:01: too many I/O port resources

    References:

    http://bugzilla.kernel.org/show_bug.cgi?id=9535
    http://bugzilla.kernel.org/show_bug.cgi?id=9740
    http://lkml.org/lkml/2007/11/30/110

    This patch also changes the way PNP uses the IORESOURCE_UNSET,
    IORESOURCE_AUTO, and IORESOURCE_DISABLED flags.

    Prior to this patch, the pnp_resource_table entries used the flags
    like this:

    IORESOURCE_UNSET
    This table entry is unused and available for use. When this flag
    is set, we shouldn't look at anything else in the resource structure.
    This flag is set when a resource table entry is initialized.

    IORESOURCE_AUTO
    This resource was assigned automatically by pnp_assign_{io,mem,etc}().

    This flag is set when a resource table entry is initialized and
    cleared whenever we discover a resource setting by reading an ISAPNP
    config register, parsing a PNPBIOS resource data stream, parsing an
    ACPI _CRS list, or interpreting a sysfs "set" command.

    Resources marked IORESOURCE_AUTO are reinitialized and marked as
    IORESOURCE_UNSET by pnp_clean_resource_table() in these cases:

    - before we attempt to assign resources automatically,
    - if we fail to assign resources automatically,
    - after disabling a device

    IORESOURCE_DISABLED
    Set by pnp_assign_{io,mem,etc}() when automatic assignment fails.
    Also set by PNPBIOS and PNPACPI for:

    - invalid IRQs or GSI registration failures
    - invalid DMA channels
    - I/O ports above 0x10000
    - mem ranges with negative length

    After this patch, there is no pnp_resource_table, and the resource list
    entries use the flags like this:

    IORESOURCE_UNSET
    This flag is no longer used in PNP. Instead of keeping
    IORESOURCE_UNSET entries in the resource list, we remove
    entries from the list and free them.

    IORESOURCE_AUTO
    No change in meaning: it still means the resource was assigned
    automatically by pnp_assign_{port,mem,etc}(), but these functions
    now set the bit explicitly.

    We still "clean" a device's resource list in the same places,
    but rather than reinitializing IORESOURCE_AUTO entries, we
    just remove them from the list.

    Note that IORESOURCE_AUTO entries are always at the end of the
    list, so removing them doesn't reorder other list entries.
    This is because non-IORESOURCE_AUTO entries are added by the
    ISAPNP, PNPBIOS, or PNPACPI "get resources" methods and by the
    sysfs "set" command. In each of these cases, we completely free
    the resource list first.

    IORESOURCE_DISABLED
    In addition to the cases where we used to set this flag, ISAPNP now
    adds an IORESOURCE_DISABLED resource when it reads a configuration
    register with a "disabled" value.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Len Brown
    Signed-off-by: Andi Kleen

    Bjorn Helgaas
     
  • Some callers use pnp_port_start() and similar functions without
    making sure the resource is valid. This patch makes us fall
    back to returning the initial values if the resource is not
    valid or not even present.

    This mostly preserves the previous behavior, where we would just
    return the initial values set by pnp_init_resource_table(). The
    original 2.6.25 code didn't range-check the "bar", so it would
    return garbage if the bar exceeded the table size. This code
    returns sensible values instead.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Len Brown
    Signed-off-by: Andi Kleen

    Bjorn Helgaas