1. 18 7月, 2008 6 次提交
  2. 17 7月, 2008 34 次提交
    • I
      ftrace: do not trace library functions · 2464a609
      Ingo Molnar 提交于
      make function tracing more robust: do not trace library functions.
      
      We've already got a sizable list of exceptions:
      
       ifdef CONFIG_FTRACE
       # Do not profile string.o, since it may be used in early boot or vdso
       CFLAGS_REMOVE_string.o = -pg
       # Also do not profile any debug utilities
       CFLAGS_REMOVE_spinlock_debug.o = -pg
       CFLAGS_REMOVE_list_debug.o = -pg
       CFLAGS_REMOVE_debugobjects.o = -pg
       CFLAGS_REMOVE_find_next_bit.o = -pg
       CFLAGS_REMOVE_cpumask.o = -pg
       CFLAGS_REMOVE_bitmap.o = -pg
       endif
      
      ... and the pattern has been that random library functionality showed
      up in ftrace's critical path (outside of its recursion check), causing
      hard to debug lockups.
      
      So be a bit defensive about it and exclude all lib/*.o functions by
      default. It's not that they are overly interesting for tracing purposes
      anyway. Specific ones can still be traced, in an opt-in manner.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2464a609
    • I
      ftrace: do not trace scheduler functions · c349e0a0
      Ingo Molnar 提交于
      do not trace scheduler functions - it's still a bit fragile
      and can lock up with:
      
        http://redhat.com/~mingo/misc/config-Thu_Jul_17_13_34_52_CEST_2008Signed-off-by: NIngo Molnar <mingo@elte.hu>
      c349e0a0
    • I
      ftrace: fix lockup with MAXSMP · 9fa11137
      Ingo Molnar 提交于
      MAXSMP brings in lots of use of various bitops in smp_processor_id()
      and friends - causing ftrace to lock up during bootup:
      
        calling  anon_inode_init+0x0/0x130
        initcall anon_inode_init+0x0/0x130 returned 0 after 0 msecs
        calling  acpi_event_init+0x0/0x57
        [ hard hang ]
      
      So exclude the bitops facilities from tracing.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      9fa11137
    • S
      [S390] dasd: use -EOPNOTSUPP instead of -ENOTSUPP · 8586cb60
      Stefan Haberland 提交于
      return value -ENOTSUPP is not valid in userspace context, use
      -EOPNOTSUPP instead
      Signed-off-by: NStefan Haberland <stefan.haberland@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      8586cb60
    • J
      [S390] qdio: new qdio driver. · 779e6e1c
      Jan Glauber 提交于
      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: NCornelia Huck <cornelia.huck@de.ibm.com>
      Reviewed-by: NUtz Bacher <utz.bacher@de.ibm.com>
      Reviewed-by: NUrsula Braun <braunu@de.ibm.com>
      Signed-off-by: NJan Glauber <jang@linux.vnet.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      779e6e1c
    • C
      [S390] cio: Export chsc_error_from_response(). · dae39843
      Cornelia Huck 提交于
      Make chsc_error_from_response() available to chsc callers outside
      of chsc.c (namely qdio) to avoid duplicating error checking code.
      Signed-off-by: NCornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      dae39843
    • F
      [S390] vmur: Fix return code handling. · b9993a38
      Frank Munzert 提交于
      Use -EOPNOTSUPP instead of -ENOTSUPP.
      Signed-off-by: NFrank Munzert <munzert@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      b9993a38
    • H
      [S390] Fix stacktrace compile bug. · 8de2ce86
      Heiko Carstens 提交于
      Add missing module.h include to fix this:
      
        CC      arch/s390/kernel/stacktrace.o
      arch/s390/kernel/stacktrace.c:84: warning: data definition has no type or storage class
      arch/s390/kernel/stacktrace.c:84: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
      arch/s390/kernel/stacktrace.c:84: warning: parameter names (without types) in function declaration
      arch/s390/kernel/stacktrace.c:97: warning: data definition has no type or storage class
      arch/s390/kernel/stacktrace.c:97: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
      arch/s390/kernel/stacktrace.c:97: warning: parameter names (without types) in function declaration
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      8de2ce86
    • H
      [S390] Increase default warning stacksize. · c5a37255
      Heiko Carstens 提交于
      Compiling a kernel with allmodconfig or allyesconfig results in tons
      of gcc warnings, because the default maximum stacksize from which on
      gcc will emit a warning is just 256 bytes.
      Increase this to 2048, so these warnings don't distract from the real
      warnings that we need to watch at.
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      c5a37255
    • C
      [S390] dasd: Fix cleanup in dasd_{fba,diag}_check_characteristics(). · 7337194f
      Cornelia Huck 提交于
      Signed-off-by: NCornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      7337194f
    • A
      [S390] chsc headers userspace cleanup · 626f3117
      Adrian Bunk 提交于
      Kernel headers shouldn't expose functions to userspace.
      
      Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      626f3117
    • S
      [S390] dasd: fix unsolicited SIM handling. · 9d853caf
      Stefan Haberland 提交于
      Add missing schedule_bh and check that there is 32 bit sense data.
      Signed-off-by: NStefan Haberland <stefan.haberland@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      9d853caf
    • F
      [S390] zfcpdump: Make SCSI disk dump tool recognize storage holes · 12e0c95e
      Frank Munzert 提交于
      The kernel part of zfcpdump establishes a new debugfs file zcore/memmap
      which exports information on memory layout (start address and length of each
      memory chunk) to its userspace counterpart.
      Signed-off-by: NFrank Munzert <munzert@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      12e0c95e
    • I
      ftrace: fix merge buglet · 8e9509c8
      Ingo Molnar 提交于
      -tip testing found a bootup hang here:
      
        initcall anon_inode_init+0x0/0x130 returned 0 after 0 msecs
        calling  acpi_event_init+0x0/0x57
      
      the bootup should have continued with:
      
        initcall acpi_event_init+0x0/0x57 returned 0 after 45 msecs
      
      but it hung hard there instead.
      
      bisection led to this commit:
      
      | commit 5806b81a
      | Merge: d14c8a68... 6712e299...
      | Author: Ingo Molnar <mingo@elte.hu>
      | Date:   Mon Jul 14 16:11:52 2008 +0200
      |     Merge branch 'auto-ftrace-next' into tracing/for-linus
      
      turns out that i made this mistake in the merge:
      
        ifdef CONFIG_FTRACE
        # Do not profile debug utilities
        CFLAGS_REMOVE_tsc_64.o = -pg
        CFLAGS_REMOVE_tsc_32.o = -pg
      
      those two files got unified meanwhile - so the dont-profile annotation
      got lost. The proper rule is:
      
        CFLAGS_REMOVE_tsc.o = -pg
      
      i guess this could have been caught sooner if the CFLAGS_REMOVE* kbuild
      rule aborted the build if it met a target that does not exist anymore?
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8e9509c8
    • R
      fix dangling zombie when new parent ignores children · 666f164f
      Roland McGrath 提交于
      This fixes an arcane bug that we think was a regression introduced
      by commit b2b2cbc4.  When a parent
      ignores SIGCHLD (or uses SA_NOCLDWAIT), its children would self-reap
      but they don't if it's using ptrace on them.  When the parent thread
      later exits and ceases to ptrace a child but leaves other live
      threads in the parent's thread group, any zombie children are left
      dangling.  The fix makes them self-reap then, as they would have
      done earlier if ptrace had not been in use.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      666f164f
    • R
      do_wait: return security_task_wait() error code in place of -ECHILD · 14dd0b81
      Roland McGrath 提交于
      This reverts the effect of commit f2cc3eb1
      "do_wait: fix security checks".  That change reverted the effect of commit
      73243284.  The rationale for the original
      commit still stands.  The inconsistent treatment of children hidden by
      ptrace was an unintended omission in the original change and in no way
      invalidates its purpose.
      
      This makes do_wait return the error returned by security_task_wait()
      (usually -EACCES) in place of -ECHILD when there are some children the
      caller would be able to wait for if not for the permission failure.  A
      permission error will give the user a clue to look for security policy
      problems, rather than for mysterious wait bugs.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      14dd0b81
    • R
      ptrace children revamp · f470021a
      Roland McGrath 提交于
      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: NRoland McGrath <roland@redhat.com>
      f470021a
    • R
      do_wait reorganization · 98abed02
      Roland McGrath 提交于
      This breaks out the guts of do_wait into three subfunctions.
      The control flow is less nonobvious without so much goto.
      do_wait_thread and ptrace_do_wait contain the main work of the outer loop.
      wait_consider_task contains the main work of the inner loop.
      Signed-off-by: NRoland McGrath <roland@redhat.com>
      98abed02
    • C
      scsi_dh: Verify "dev" is a sdev before accessing it. · 33af79d1
      Chandra Seetharaman 提交于
      Before accessing the device data structure in hardware handlers,
      make sure it is a indeed a sdev device.
      
      Yinghai Lu <yhlu.kernel@gmail.com> found the bug on Jul 16, 2008,
      and later tested/verified the following fix.
      Signed-off-by: NChandra Seetharaman <sekharan@us.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      33af79d1
    • L
      Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6 · dc7c65db
      Linus Torvalds 提交于
      * '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.
      dc7c65db
    • J
      Revert "x86/PCI: ACPI based PCI gap calculation" · 58b6e553
      Jesse Barnes 提交于
      This reverts commit 809d9a8f.
      
      This one isn't quite ready for prime time.  It needs more testing and
      additional feedback from the ACPI guys.
      58b6e553
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc · 8a0ca91e
      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.
      8a0ca91e
    • L
      Merge branch 'for_linus' of git://git.infradead.org/~dedekind/ubifs-2.6 · 9c1be0c4
      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
      9c1be0c4
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 · 42fdd144
      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 <linux/mc146818rtc.h>
        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
        ...
      42fdd144
    • L
      Merge branch 'release-2.6.27' of... · 4314652b
      Linus Torvalds 提交于
      Merge branch 'release-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/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
        ...
      4314652b
    • M
      block: Trivial fix for blk_integrity_rq() · d442cc44
      Martin K. Petersen 提交于
      Fail integrity check gracefully when request does not have a bio
      attached (BLOCK_PC).
      Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d442cc44
    • L
      Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6 · 8df1b049
      Linus Torvalds 提交于
      * 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
        ...
      8df1b049
    • J
      Fix FADT parsing · 01a5bba5
      Jan Beulich 提交于
      The (1.0 inherited) separate length fields in the FADT are byte granular.
      Further, PM1a/b may have distinct lengths and live in distinct address spaces.
       acpi_tb_convert_fadt() should account for all of these conditions.
      
      Apart from these changes I'm puzzled by the fact that, not just for
      acpi_gbl_xpm1{a,b}_enable, acpi_hw_low_level_{read,write}() get an explicit
      size passed rather than using the size found in the passed GAS.  What happens
      on a platform that defines PM1{a,b} wider than 16 bits?  Of course,
      acpi_hw_low_level_{read,write}() at present are entirely un-prepared to deal
      with sizes other than 8, 16, or 32, not to speak of a non-zero bit_offset or
      access_width...
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Cc: Len Brown <lenb@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      01a5bba5
    • A
      Add the ability to reset the machine using the RESET_REG in ACPI's FADT table. · 4d387043
      Aaron Durbin 提交于
      Signed-off-by: NAaron Durbin <adurbin@google.com>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Cc: Len Brown <lenb@kernel.org>
      Cc: Andi Kleen <andi@firstfloor.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      4d387043
    • B
      ACPI: use dev_printk when possible · c83642d5
      Bjorn Helgaas 提交于
      Convert printks to use dev_printk().  The most obvious change will
      be messages like this:
      
         -ACPI: PCI Interrupt 0000:00:04.0[A] -> GSI 31 (level, low) -> IRQ 31
         +cciss 0000:00:04.0: PCI INT A -> GSI 31 (level, low) -> IRQ 31
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      c83642d5
    • B
      PNPACPI: add support for HP vendor-specific CCSR descriptors · 40ab4f4c
      Bjorn Helgaas 提交于
      The HP CCSR descriptor describes MMIO address space that should appear
      as a MEM resource.  This patch adds support for parsing these descriptors
      in the _CRS data.
      
      The visible effect of this is that these MEM resources will appear
      in /sys/devices/pnp0/.../resources, which means that "lspnp -v" will
      report it, user applications can use this to locate device CSR space,
      and kernel drivers can use the normal PNP resource accessors to
      locate them.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      40ab4f4c
    • B
      PNP: avoid legacy IDE IRQs · 84684c74
      Bjorn Helgaas 提交于
      If an IDE controller is in compatibility mode, it expects to use
      IRQs 14 and 15, so PNP should avoid them.
      
      This patch should resolve this problem report:
        parallel driver grabs IRQ14 preventing legacy SFF ATA controller from working
        https://bugzilla.novell.com/show_bug.cgi?id=375836Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      84684c74
    • B
      PNP: convert resource options to single linked list · 1f32ca31
      Bjorn Helgaas 提交于
      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: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Acked-by: NRene Herman <rene.herman@gmail.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      1f32ca31
    • B
      ISAPNP: handle independent options following dependent ones · bbe413b4
      Bjorn Helgaas 提交于
      The ISAPNP spec recommends that independent options precede
      dependent ones, but this is not actually required.  The current
      ISAPNP code incorrectly puts such trailing independent options
      at the end of the last dependent option list.
      
      This patch fixes that bug by resetting the current option list
      to the independent list when we see an "End Dependent Functions"
      tag.  PNPBIOS and PNPACPI handle this the same way.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Acked-by: NRene Herman <rene.herman@gmail.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      bbe413b4