1. 15 2月, 2007 1 次提交
    • T
      [PATCH] remove many unneeded #includes of sched.h · cd354f1a
      Tim Schmielau 提交于
      After Al Viro (finally) succeeded in removing the sched.h #include in module.h
      recently, it makes sense again to remove other superfluous sched.h includes.
      There are quite a lot of files which include it but don't actually need
      anything defined in there.  Presumably these includes were once needed for
      macros that used to live in sched.h, but moved to other header files in the
      course of cleaning it up.
      
      To ease the pain, this time I did not fiddle with any header files and only
      removed #includes from .c-files, which tend to cause less trouble.
      
      Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
      arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
      allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
      configs in arch/arm/configs on arm.  I also checked that no new warnings were
      introduced by the patch (actually, some warnings are removed that were emitted
      by unnecessarily included header files).
      Signed-off-by: NTim Schmielau <tim@physik3.uni-rostock.de>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cd354f1a
  2. 08 2月, 2007 1 次提交
  3. 06 1月, 2007 2 次提交
  4. 21 12月, 2006 1 次提交
    • A
      UHCI: module parameter to ignore overcurrent changes · 5f8364b7
      Alan Stern 提交于
      Certain boards seem to like to issue false overcurrent notifications,
      for example on ports that don't have anything connected to them.  This
      looks like a hardware error, at the level of noise to those ports'
      overcurrent input signals (or non-debounced VBUS comparators).  This
      surfaces to users as truly massive amounts of syslog spam from khubd
      (which is appropriate for real hardware problems, except for the
      volume from multiple ports).
      
      Using this new "ignore_oc" flag helps such systems work more sanely,
      by preventing such indications from getting to khubd (and spamming
      syslog).  The downside is of course that true overcurrent errors will
      be masked; they'll appear as spontaneous disconnects, without the
      diagnostics that will let users troubleshoot issues like
      short-circuited cables.  In addition, controllers with no devices
      attached will be forced to poll for new devices rather than relying on
      interrupts, since each overcurrent event would generate a new
      interrupt.
      
      This patch (as826) is essentially a copy of David Brownell's ignore_oc
      patch for ehci-hcd, ported to uhci-hcd.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      5f8364b7
  5. 08 12月, 2006 1 次提交
  6. 18 10月, 2006 1 次提交
  7. 05 10月, 2006 1 次提交
    • D
      IRQ: Maintain regs pointer globally rather than passing to IRQ handlers · 7d12e780
      David Howells 提交于
      Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
      of passing regs around manually through all ~1800 interrupt handlers in the
      Linux kernel.
      
      The regs pointer is used in few places, but it potentially costs both stack
      space and code to pass it around.  On the FRV arch, removing the regs parameter
      from all the genirq function results in a 20% speed up of the IRQ exit path
      (ie: from leaving timer_interrupt() to leaving do_IRQ()).
      
      Where appropriate, an arch may override the generic storage facility and do
      something different with the variable.  On FRV, for instance, the address is
      maintained in GR28 at all times inside the kernel as part of general exception
      handling.
      
      Having looked over the code, it appears that the parameter may be handed down
      through up to twenty or so layers of functions.  Consider a USB character
      device attached to a USB hub, attached to a USB controller that posts its
      interrupts through a cascaded auxiliary interrupt controller.  A character
      device driver may want to pass regs to the sysrq handler through the input
      layer which adds another few layers of parameter passing.
      
      I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
      main part of the code on FRV and i386, though I can't test most of the drivers.
      I've also done partial conversion for powerpc and MIPS - these at least compile
      with minimal configurations.
      
      This will affect all archs.  Mostly the changes should be relatively easy.
      Take do_IRQ(), store the regs pointer at the beginning, saving the old one:
      
      	struct pt_regs *old_regs = set_irq_regs(regs);
      
      And put the old one back at the end:
      
      	set_irq_regs(old_regs);
      
      Don't pass regs through to generic_handle_irq() or __do_IRQ().
      
      In timer_interrupt(), this sort of change will be necessary:
      
      	-	update_process_times(user_mode(regs));
      	-	profile_tick(CPU_PROFILING, regs);
      	+	update_process_times(user_mode(get_irq_regs()));
      	+	profile_tick(CPU_PROFILING);
      
      I'd like to move update_process_times()'s use of get_irq_regs() into itself,
      except that i386, alone of the archs, uses something other than user_mode().
      
      Some notes on the interrupt handling in the drivers:
      
       (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
           the input_dev struct.
      
       (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
           something different depending on whether it's been supplied with a regs
           pointer or not.
      
       (*) Various IRQ handler function pointers have been moved to type
           irq_handler_t.
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
      7d12e780
  8. 27 9月, 2006 1 次提交
  9. 26 9月, 2006 1 次提交
  10. 01 7月, 2006 1 次提交
  11. 22 6月, 2006 6 次提交
  12. 28 4月, 2006 1 次提交
  13. 15 4月, 2006 2 次提交
  14. 21 3月, 2006 3 次提交
    • A
      [PATCH] UHCI: improve debugging code · 8d402e1a
      Alan Stern 提交于
      This patch (as626) makes some improvements to the debugging code in
      uhci-hcd.  The main change is that now the code won't get compiled if
      CONFIG_USB_DEBUG isn't set.  But there are other changes too, like
      adding a missing .owner field and printing a debugging dump if the
      controller dies.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      8d402e1a
    • A
      [PATCH] UHCI: remove main list of URBs · 0ed8fee1
      Alan Stern 提交于
      As part of reorienting uhci-hcd away from URBs and toward endpoint
      queues, this patch (as625) eliminates the driver's main list of URBs.
      The list wsa used mainly in checking for URB completions; now the driver
      goes through the list of active endpoints and checks the members of the
      queues.
      
      As a side effect, I had to remove the code that looks for FSBR timeouts.
      For now, FSBR will remain on so long as any URBs on a full-speed control
      or bulk queue request it, even if the queue isn't advancing.  A later
      patch can add more intelligent handling.  This isn't a huge drawback;
      it's pretty rare for an URB to get stuck for more than a fraction of a
      second.  (And it will help the people trying to use those insane HP USB
      devices.)
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0ed8fee1
    • A
      [PATCH] UHCI: use one QH per endpoint, not per URB · dccf4a48
      Alan Stern 提交于
      This patch (as623) changes the uhci-hcd driver to make it use one QH per
      device endpoint, instead of a QH per URB as it does now.  Numerous areas
      of the code are affected by this.  For example, the distinction between
      "queued" URBs and non-"queued" URBs no longer exists; all URBs belong to
      a queue and some just happen to be at the queue's head.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      dccf4a48
  15. 05 1月, 2006 5 次提交
  16. 17 12月, 2005 1 次提交
  17. 30 11月, 2005 1 次提交
    • B
      [PATCH] USB: Fix USB suspend/resume crasher (#2) · 8de98402
      Benjamin Herrenschmidt 提交于
      This patch closes the IRQ race and makes various other OHCI & EHCI code
      path safer vs. suspend/resume.
      I've been able to (finally !) successfully suspend and resume various
      Mac models, with or without USB mouse plugged, or plugging while asleep,
      or unplugging while asleep etc... all without a crash.
      
      Alan, please verify the UHCI bit I did, I only verified that it builds.
      It's very simple so I wouldn't expect any issue there. If you aren't
      confident, then just drop the hunks that change uhci-hcd.c
      
      I also made the patch a little bit more "safer" by making sure the store
      to the interrupt register that disables interrupts is not posted before
      I set the flag and drop the spinlock.
      
      Without this patch, you cannot reliably sleep/wakeup any recent Mac, and
      I suspect PCs have some more sneaky issues too (they don't frankly crash
      with machine checks because x86 tend to silently swallow PCI errors but
      that won't last afaik, at least PCI Express will blow up in those
      situations, but the USB code may still misbehave).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      8de98402
  18. 11 11月, 2005 1 次提交
  19. 29 10月, 2005 7 次提交
  20. 13 9月, 2005 1 次提交
  21. 28 6月, 2005 1 次提交
    • A
      [PATCH] USB UHCI: Detect invalid ports · e07fefa6
      Alan Stern 提交于
      This patch changes the way uhci-hcd detects valid ports.  The
      specification doesn't mention any way to find out how many ports a
      controller has, so the driver has to use some heuristics, reading the port
      status and control register and deciding whether the value makes sense.
      With this patch the driver will recognize a typical failure mode (all bits
      set to one) for nonexistent ports and won't assume there are always at
      least 2 ports -- such an assumption seems silly if the heuristics have
      already shown that the ports don't exist.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e07fefa6