1. 03 Jul, 2005 1 commit
  2. 29 Jun, 2005 2 commits
  3. 28 Jun, 2005 13 commits
  4. 27 Jun, 2005 24 commits
    • Greg Kroah-Hartman's avatar
      [PATCH] PCI: add proper MCFG table parsing to ACPI core. · 54549391
      Greg Kroah-Hartman authored
      This patch is the first step in properly handling the MCFG PCI table.
      It defines the structures properly, and saves off the table so that the
      pci mmconfig code can access it.  It moves the parsing of the table a
      little later in the boot process, but still before the information is
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Andrew Morton's avatar
      [PATCH] PCI: fix up errors after dma bursting patch and CONFIG_PCI=n · bb4a61b6
      Andrew Morton authored
      With CONFIG_PCI=n:
      In file included from include/linux/pci.h:917,
                       from lib/iomap.c:6:
      include/asm/pci.h:104: warning: `enum pci_dma_burst_strategy' declared inside parameter list
      include/asm/pci.h:104: warning: its scope is only this definition or declaration, which is probably not what you want.
      include/asm/pci.h: In function `pci_dma_burst_advice':
      include/asm/pci.h:106: dereferencing pointer to incomplete type
      include/asm/pci.h:106: `PCI_DMA_BURST_INFINITY' undeclared (first use in this function)
      include/asm/pci.h:106: (Each undeclared identifier is reported only once
      include/asm/pci.h:106: for each function it appears in.)
      make[1]: *** [lib/iomap.o] Error 1
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • David S. Miller's avatar
      [PATCH] PCI: DMA bursting advice · e24c2d96
      David S. Miller authored
      After seeing, at best, "guesses" as to the following kind
      of information in several drivers, I decided that we really
      need a way for platforms to specifically give advice in this
      area for what works best with their PCI controller implementation.
      Basically, this new interface gives DMA bursting advice on
      PCI.  There are three forms of the advice:
      1) Burst as much as possible, it is not necessary to end bursts
         on some particular boundary for best performance.
      2) Burst on some byte count multiple.  A DMA burst to some multiple of
         number of bytes may be done, but it is important to end the burst
         on an exact multiple for best performance.
         The best example of this I am aware of are the PPC64 PCI
         controllers, where if you end a burst mid-cacheline then
         chip has to refetch the data and the IOMMU translations
         which hurts performance a lot.
      3) Burst on a single byte count multiple.  Bursts shall end
         exactly on the next multiple boundary for best performance.
         Sparc64 and Alpha's PCI controllers operate this way.  They
         disconnect any device which tries to burst across a cacheline
         Actually, newer sparc64 PCI controllers do not have this behavior.
         That is why the "pdev" is passed into the interface, so I can
         add code later to check which PCI controller the system is using
         and give advice accordingly.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Michael Ellerman's avatar
      [PATCH] PCI: fix-pci-mmap-on-ppc-and-ppc64.patch · 2311b1f2
      Michael Ellerman authored
      This is an updated version of Ben's fix-pci-mmap-on-ppc-and-ppc64.patch
      which is in 2.6.12-rc4-mm1.
      It fixes the patch to work on PPC iSeries, removes some debug printks
      at Ben's request, and incorporates your
      fix-pci-mmap-on-ppc-and-ppc64-fix.patch also.
      Originally from Benjamin Herrenschmidt <benh@kernel.crashing.org>
      This patch was discussed at length on linux-pci and so far, the last
      iteration of it didn't raise any comment.  It's effect is a nop on
      architecture that don't define the new pci_resource_to_user() callback
      anyway.  It allows architecture like ppc who put weird things inside of
      PCI resource structures to convert to some different value for user
      visible ones.  It also fixes mmap'ing of IO space on those archs.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Kenji Kaneshige's avatar
      [PATCH] ACPI based I/O APIC hot-plug: acpiphp support · a0d399a8
      Kenji Kaneshige authored
      This patch adds PCI based I/O xAPIC hot-add support to ACPIPHP
      driver. When PCI root bridge is hot-added, all PCI based I/O xAPICs
      under the root bridge are hot-added by this patch. Hot-remove support
      is TBD.
      Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Kenji Kaneshige's avatar
      [PATCH] ACPI based I/O APIC hot-plug: add interfaces · b1bb248a
      Kenji Kaneshige authored
      This patch adds the following new interfaces for I/O xAPIC
      hotplug. The implementation of these interfaces depends on each
          o int acpi_register_ioapic(acpi_handle handle, u64 phys_addr,
      			       u32 gsi_base);
              This new interface is to add a new I/O xAPIC specified by
              phys_addr and gsi_base pair. phys_addr is the physical address
              to which the I/O xAPIC is mapped and gsi_base is global system
              interrupt base of the I/O xAPIC. acpi_register_ioapic returns
              0 on success, or negative value on error.
          o int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base);
              This new interface is to remove a I/O xAPIC specified by
              gsi_base. acpi_unregister_ioapic returns 0 on success, or
              negative value on error.
      Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Rajesh Shah's avatar
      [PATCH] acpi bridge hotadd: ACPI based root bridge hot-add · c431ada4
      Rajesh Shah authored
      When you hot-plug a (root) bridge hierarchy, it may have p2p bridges and
      devices attached to it that have not been configured by firmware.  In this
      case, we need to configure the devices before starting them.  This patch
      separates device start from device scan so that we can introduce the
      configuration step in the middle.
      I kept the existing semantics for pci_scan_bus() since there are a huge number
      of callers to that function.
      Also, I have no way of testing the changes I made to the parisc files, so this
      needs review by those folks.  Sorry for the massive cross-post, this touches
      files in many different places.
      Signed-off-by: default avatarRajesh Shah <rajesh.shah@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Jeff Garzik's avatar
    • Dominik Brodowski's avatar
      [PATCH] pcmcia: mod_devicetable.h fix for different sizes in kernel- and userspace · aecab27a
      Dominik Brodowski authored
      The size of pointers may differ between (userspace) modpost and (kernelspace)
      modules -- so fix mod_devicetable.h to reflect this possibility.
      Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Dominik Brodowski's avatar
      [PATCH] pcmcia: match "anonymous" cards · f602ff7e
      Dominik Brodowski authored
      If a card doesn't provide _any_ information about itself, assume it is a
      so-called "anonymous" card.  pcmciamtd will bind to it if it is configured to
      do so.
      Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Dominik Brodowski's avatar
      [PATCH] pcmcia: match for fake CIS · ea7b3882
      Dominik Brodowski authored
      Add another match flag for devices needing a CIS override.  The driver will
      only probe/attach if the CIS has been replaced before.
      Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Dominik Brodowski's avatar
      [PATCH] pcmcia: device and driver matching · 1ad275e3
      Dominik Brodowski authored
      The actual matching of pcmcia drivers and pcmcia devices.  The original
      version of this was written by David Woodhouse.
      Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Alan Cox's avatar
      [PATCH] ide: it8212 backport for Bartlomiej IDE · da9091ee
      Alan Cox authored
      This lets you throw out the iteraid stuff that has ended up back in due
      to stupid goings on in the IDE world. Its the same heavily tested code
      shipped in Fedora/Red Hat products but without the other dependancies on
      the Bartlomiej IDE layer.
      Pre-requisite: the ide-disk patch I sent to handle pure LBA devices.
      Obviously you lose things like hot unplug with the Bartlomiej IDE layer
      at the moment but that won't matter to most users.
      The patch does the following
      - Add IT8211/12 to pci_ids.h
      - Add Makefile/Kconfig entry
      - Add it8212 driver
      No core IDE code is touched by this diff
      Embedded system testing and the ability to force raid mode off by David
      Made possible by the ite reference code, documentation and also several
      clarifications and pieces of assistance provided by ITE themselves
      Signed-off-by: default avatarAlan Cox <alan@redhat.com>
      Acked-by: default avatarBartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Rusty Lynch's avatar
      [PATCH] Return probe redesign: architecture independent changes · 802eae7c
      Rusty Lynch authored
      The following is the second version of the function return probe patches
      I sent out earlier this week.  Changes since my last submission include:
      * Fix in ppc64 code removing an unneeded call to re-enable preemption
      * Fix a build problem in ia64 when kprobes was turned off
      * Added another BUG_ON check to each of the architecture trampoline
      My initial patch description ==>
       From my experiences with adding return probes to x86_64 and ia64, and the
      feedback on LKML to those patches, I think we can simplify the design
      for return probes.
      The following patch tweaks the original design such that:
      * Instead of storing the stack address in the return probe instance, the
        task pointer is stored.  This gives us all we need in order to:
          - find the correct return probe instance when we enter the trampoline
            (even if we are recursing)
          - find all left-over return probe instances when the task is going away
        This has the side effect of simplifying the implementation since more
        work can be done in kernel/kprobes.c since architecture specific knowledge
        of the stack layout is no longer required.  Specifically, we no longer have:
      	- arch_get_kprobe_task()
      	- arch_kprobe_flush_task()
      	- get_rp_inst_tsk()
      	- get_rp_inst()
      	- trampoline_post_handler() <see next bullet>
      * Instead of splitting the return probe handling and cleanup logic across
        the pre and post trampoline handlers, all the work is pushed into the
        pre function (trampoline_probe_handler), and then we skip single stepping
        the original function.  In this case the original instruction to be single
        stepped was just a NOP, and we can do without the extra interruption.
      The new flow of events to having a return probe handler execute when a target
      function exits is:
      * At system initialization time, a kprobe is inserted at the beginning of
        kretprobe_trampoline.  kernel/kprobes.c use to handle this on it's own,
        but ia64 needed to do this a little differently (i.e. a function pointer
        is really a pointer to a structure containing the instruction pointer and
        a global pointer), so I added the notion of arch_init(), so that
        kernel/kprobes.c:init_kprobes() now allows architecture specific
        initialization by calling arch_init() before exiting.  Each architecture
        now registers a kprobe on it's own trampoline function.
      * register_kretprobe() will insert a kprobe at the beginning of the targeted
        function with the kprobe pre_handler set to arch_prepare_kretprobe
        (still no change)
      * When the target function is entered, the kprobe is fired, calling
        arch_prepare_kretprobe (still no change)
      * In arch_prepare_kretprobe() we try to get a free instance and if one is
        available then we fill out the instance with a pointer to the return probe,
        the original return address, and a pointer to the task structure (instead
        of the stack address.)  Just like before we change the return address
        to the trampoline function and mark the instance as used.
        If multiple return probes are registered for a given target function,
        then arch_prepare_kretprobe() will get called multiple times for the same
        task (since our kprobe implementation is able to handle multiple kprobes
        at the same address.)  Past the first call to arch_prepare_kretprobe,
        we end up with the original address stored in the return probe instance
        pointing to our trampoline function. (This is a significant difference
        from the original arch_prepare_kretprobe design.)
      * Target function executes like normal and then returns to kretprobe_trampoline.
      * kprobe inserted on the first instruction of kretprobe_trampoline is fired
        and calls trampoline_probe_handler() (no change here)
      * trampoline_probe_handler() consumes each of the instances associated with
        the current task by calling the registered handler function and marking
        the instance as unused until an instance is found that has a return address
        different then the trampoline function.
        (change similar to my previous ia64 RFC)
      * If the task is killed with some left-over return probe instances (meaning
        that a target function was entered, but never returned), then we just
        free any instances associated with the task.  (Not much different other
        then we can handle this without calling architecture specific functions.)
        There is a known problem that this patch does not yet solve where
        registering a return probe flush_old_exec or flush_thread will put us
        in a bad state.  Most likely the best way to handle this is to not allow
        registering return probes on these two functions.
        (Significant change)
      This patch series applies to the 2.6.12-rc6-mm1 kernel, and provides:
        * kernel/kprobes.c changes
        * i386 patch of existing return probes implementation
        * x86_64 patch of existing return probe implementation
        * ia64 implementation
        * ppc64 implementation (provided by Ananth)
      This patch implements the architecture independant changes for a reworking
      of the kprobes based function return probes design. Changes include:
        * Removing functions for querying a return probe instance off a stack address
        * Removing the stack_addr field from the kretprobe_instance definition,
          and adding a task pointer
        * Adding architecture specific initialization via arch_init()
        * Removing extern definitions for the architecture trampoline functions
          (this isn't needed anymore since the architecture handles the
           initialization of the kprobe in the return probe trampoline function.)
      Signed-off-by: default avatarRusty Lynch <rusty.lynch@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Ananth N Mavinakayanahalli's avatar
      [PATCH] kprobes: fix single-step out of line - take2 · 9ec4b1f3
      Ananth N Mavinakayanahalli authored
      Now that PPC64 has no-execute support, here is a second try to fix the
      single step out of line during kprobe execution.  Kprobes on x86_64 already
      solved this problem by allocating an executable page and using it as the
      scratch area for stepping out of line.  Reuse that.
      Signed-off-by: default avatarAnanth N Mavinakayanahalli <ananth@in.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Mike Miller's avatar
      [PATCH] cciss: pci domain info pass 2 · cd6fb584
      Mike Miller authored
      This is pass 2 of my patch to add pci domain info to an existing ioctl.  This
      time I insert the domain between dev_fn and board_id as Willy suggested and
      change the var to unsigned short to ease Christoph's concerns.  Although I
      thought unsigned int was the correct var type for this.  I also thought it
      didn't matter where I inserted it in the structure.
      Signed-off-by: default avatarMike Miller <mike.miller@hp.com>
      Acked-by: default avatarJeff Garzik <jgarzik@pobox.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Mike Miller's avatar
      [PATCH] cciss: pci id fix · 3de0a70b
      Mike Miller authored
      This patch fixes a PCI ID I got wrong before.  It also adds support for
      another new SAS controller due out this summer.  I didn't have a marketing
      name prior to my last submission.  Also modifies the copyright date range.
      Signed-off-by: default avatarMike Miller <mike.miller@hp.com>
      Acked-by: default avatarJeff Garzik <jgarzik@pobox.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Andrea Arcangeli's avatar
      [PATCH] seccomp: tsc disable · ffaa8bd6
      Andrea Arcangeli authored
      I believe at least for seccomp it's worth to turn off the tsc, not just for
      HT but for the L2 cache too.  So it's up to you, either you turn it off
      completely (which isn't very nice IMHO) or I recommend to apply this below
      This has been tested successfully on x86-64 against current cogito
      repository (i686 compiles so I didn't bother testing ;).  People selling
      the cpu through cpushare may appreciate this bit for a peace of mind.
      There's no way to get any timing info anymore with this applied
      (gettimeofday is forbidden of course).  The seccomp environment is
      completely deterministic so it can't be allowed to get timing info, it has
      to be deterministic so in the future I can enable a computing mode that
      does a parallel computing for each task with server side transparent
      checkpointing and verification that the output is the same from all the 2/3
      seller computers for each task, without the buyer even noticing (for now
      the verification is left to the buyer client side and there's no
      checkpointing, since that would require more kernel changes to track the
      dirty bits but it'll be easy to extend once the basic mode is finished).
      Eliminating a cold-cache read of the cr4 global variable will save one
      cacheline during the tlb flush while making the code per-cpu-safe at the
      same time.  Thanks to Mikael Pettersson for noticing the tlb flush wasn't
      The global tlb flush can run from irq (IPI calling do_flush_tlb_all) but
      it'll be transparent to the switch_to code since the IPI won't make any
      change to the cr4 contents from the point of view of the interrupted code
      and since it's now all per-cpu stuff, it will not race.  So no need to
      disable irqs in switch_to slow path.
      Signed-off-by: default avatarAndrea Arcangeli <andrea@cpushare.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Benjamin Herrenschmidt's avatar
      [PATCH] ppc32: Remove CONFIG_PMAC_PBOOK · 8c870933
      Benjamin Herrenschmidt authored
      This patch removes CONFIG_PMAC_PBOOK (PowerBook support).  This is now
      split into CONFIG_PMAC_MEDIABAY for the actual hotswap bay that some
      powerbooks have, CONFIG_PM for power management related code, and just left
      out of any CONFIG_* option for some generally useful stuff that can be used
      on non-laptops as well.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • David Brownell's avatar
      [PATCH] USB: wireless usb <linux/usb_ch9.h> declarations · 5da0106f
      David Brownell authored
      This provides declarations for new requests, descriptors, and bitfields as
      defined in the Wireless USB 1.0 spec.  Device support will involve a new
      "Wire Adapter" device class, connecting a USB Host to a cluster of wireless
      USB devices.  There will be two adapter types:
        * Host Wireless Adapter (HWA):  the downstream link is wireless, which
          connects a wireless USB host to wireless USB devices (not unlike like
          a hub) including to the second type of adapter.
        * Device Wireless Adapter (DWA): the upstream link is wireless, for
          connecting existing USB devices through wired links into the cluser.
      All wireless USB devices will need persistent (and secure!) key storage, and
      it's probable that Linux -- or device firmware -- will need to be involved
      with that to bootstrap the initial secure key exchange.
      Some user interface is required in that initial key exchange, and since the
      most "hands-off" one is a wired USB link, I suspect wireless operation will
      usually not be the only mode for wireless USB devices.  (Plus, devices can
      recharge batteries using wired USB...)  All other key exchange protocols need
      error prone user interactions, like copying and/or verifying keys.
      It'll likely be a while before we have commercial Wireless USB hardware,
      much less Linux implementations that know how to use it.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • David Brownell's avatar
      [PATCH] USB: gadget driver updates (SETUP api change) · 1bbc1696
      David Brownell authored
      This updates most of the gadget framework to expect SETUP packets use
      USB byteorder (matching the annotation in <linux/usb_ch9.h> and usage
      in the host side stack):
        - definition in <linux/usb_gadget.h>
        - gadget drivers:  Ethernet/RNDIS, serial/ACM, file_storage, gadgetfs.
        - dummy_hcd
      It also includes some other similar changes as suggested by "sparse",
      which was used to detect byteorder bugs.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Olav Kongas's avatar
      [PATCH] USB: Add isp116x-hcd USB host controller driver · 4808a1c0
      Olav Kongas authored
      This patch provides an "isp116x-hcd" driver for Philips'
      ISP1160/ISP1161 USB host controllers.
      The driver:
       - is relatively small, meant for use on embedded platforms.
       - runs usbtests 1-14 without problems for days.
       - has been in use by 6-7 different people on ARM and PPC platforms,
         running a range of devices including USB hubs.
       - supports suspend/resume of both the platform device and the root hub;
         supports remote wakeup of the root hub (but NOT the platform device)
         by USB devices.
       - does NOT support ISO transfers (nobody has asked for them).
       - is PIO-only.
      Signed-off-by: default avatarOlav Kongas <ok@artecdesign.ee>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    • Jens Axboe's avatar
      [PATCH] CFQ io scheduler updates · 3b18152c
      Jens Axboe authored
      - Adjust slice values
      - Instead of one async queue, one is defined per priority level. This
        prevents kernel threads (such as reiserfs/x and others) that run at
        higher io priority from conflicting with others. Previously, it was a
        coin toss what io prio the async queue got, it was defined by who
        first set up the queue.
      - Let a time slice only begin, when the previous slice is completely
        done. Previously we could be somewhat unfair to a new sync slice, if
        the previous slice was async and had several ios queued. This might
        need a little tweaking if throughput suffers a little due to this,
        allowing perhaps an overlap of a single request or so.
      - Optimize the calling of kblockd_schedule_work() by doing it only when
        it is strictly necessary (no requests in driver and work left to do).
      - Correct sync vs async logic. A 'normal' process can be purely async as
        well, and a flusher can be purely sync as well. Sync or async is now a
        property of the class defined and requests pending. Previously writers
        could be considered sync, when they were really async.
      - Get rid of the bit fields in cfqq and crq, use flags instead.
      - Various other cleanups and fixes
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    • Jens Axboe's avatar
      [PATCH] Update cfq io scheduler to time sliced design · 22e2c507
      Jens Axboe authored
      This updates the CFQ io scheduler to the new time sliced design (cfq
      v3).  It provides full process fairness, while giving excellent
      aggregate system throughput even for many competing processes.  It
      supports io priorities, either inherited from the cpu nice value or set
      directly with the ioprio_get/set syscalls.  The latter closely mimic
      This import is based on my latest from -mm.
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>