1. 07 11月, 2007 1 次提交
    • A
      [NET]: Let USB_USBNET always select MII. · 4aa92cd9
      Adrian Bunk 提交于
      All this USB_USBNET_MII trickery is simply not worth it considering how
      few code it saves.
      
      As a side effect, this also fixes the following compile error reported
      by Toralf Frster:
      
      <--  snip  -->
      
      ...
        LD      .tmp_vmlinux1
      drivers/built-in.o: In function `usbnet_set_settings':
      (.text+0xf1876): undefined reference to `mii_ethtool_sset'
      drivers/built-in.o: In function `usbnet_get_settings':
      (.text+0xf1836): undefined reference to `mii_ethtool_gset'
      drivers/built-in.o: In function `usbnet_get_link':
      (.text+0xf18d6): undefined reference to `mii_link_ok'
      drivers/built-in.o: In function `usbnet_nway_reset':
      (.text+0xf18f6): undefined reference to `mii_nway_restart'
      make: *** [.tmp_vmlinux1] Error 1
      
      <--  snip  -->
      Signed-off-by: NAdrian Bunk <bunk@kernel.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4aa92cd9
  2. 11 10月, 2007 3 次提交
  3. 11 7月, 2007 1 次提交
  4. 09 7月, 2007 1 次提交
  5. 02 7月, 2007 1 次提交
  6. 23 5月, 2007 1 次提交
  7. 10 5月, 2007 1 次提交
  8. 28 4月, 2007 1 次提交
  9. 26 4月, 2007 1 次提交
  10. 17 2月, 2007 1 次提交
  11. 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
  12. 08 12月, 2006 1 次提交
  13. 02 12月, 2006 1 次提交
  14. 22 11月, 2006 1 次提交
  15. 04 11月, 2006 1 次提交
    • D
      USB: use MII hooks only if CONFIG_MII is enabled · 18ee91fa
      David Brownell 提交于
      Fix mcs7830 patch
      
      The recent mcs7830 update to make the MII support sharable goofed various
      pre-existing configurations in two ways:
      
        - it made the usbnet infrastructure reference MII symbols even
          when they're not needed in the kernel being built
      
        - it didn't enable MII along with the mcs7830 minidriver
      
      This patch fixes these two problems.
      
      However, there does seem to be a Kconfig reverse dependency bug in that MII
      gets wrongly enabled in some cases (like USBNET=y and USBNET_MII=n); I think
      I've noticed that same problem in other situations too.  So the result can
      mean kernels being bloated by stuff that's needlessly enabled ... better
      than wrongly being disabled, but contributing to bloat.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      18ee91fa
  16. 31 10月, 2006 1 次提交
    • P
      [PATCH] lockdep: annotate DECLARE_WAIT_QUEUE_HEAD · 7259f0d0
      Peter Zijlstra 提交于
      kernel: INFO: trying to register non-static key.
      kernel: the code is fine but needs lockdep annotation.
      kernel: turning off the locking correctness validator.
      kernel:  [<c04051ed>] show_trace_log_lvl+0x58/0x16a
      kernel:  [<c04057fa>] show_trace+0xd/0x10
      kernel:  [<c0405913>] dump_stack+0x19/0x1b
      kernel:  [<c043b1e2>] __lock_acquire+0xf0/0x90d
      kernel:  [<c043bf70>] lock_acquire+0x4b/0x6b
      kernel:  [<c061472f>] _spin_lock_irqsave+0x22/0x32
      kernel:  [<c04363d3>] prepare_to_wait+0x17/0x4b
      kernel:  [<f89a24b6>] lpfc_do_work+0xdd/0xcc2 [lpfc]
      kernel:  [<c04361b9>] kthread+0xc3/0xf2
      kernel:  [<c0402005>] kernel_thread_helper+0x5/0xb
      
      Another case of non-static lockdep keys; duplicate the paradigm set by
      DECLARE_COMPLETION_ONSTACK and introduce DECLARE_WAIT_QUEUE_HEAD_ONSTACK.
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Greg KH <gregkh@suse.de>
      Cc: Markus Lidel <markus.lidel@shadowconnect.com>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Cc: Arjan van de Ven <arjan@infradead.org>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Cc: Marcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7259f0d0
  17. 18 10月, 2006 3 次提交
  18. 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
  19. 28 9月, 2006 3 次提交
  20. 01 7月, 2006 1 次提交
  21. 18 11月, 2005 1 次提交
  22. 29 10月, 2005 1 次提交
    • D
      [PATCH] usb_interface power state · db690874
      David Brownell 提交于
      This updates the handling of power state for USB interfaces.
      
        - Formalizes an existing invariant:  interface "power state" is a boolean:
          ON when I/O is allowed, and FREEZE otherwise.  It does so by defining
          some inlined helpers, then using them.
      
        - Adds a useful invariant:  the only interfaces marked active are those
          bound to non-suspended drivers.  Later patches build on this invariant.
      
        - Simplifies the interface driver API (and removes some error paths) by
          removing the requirement that they record power state changes during
          suspend and resume callbacks.  Now usbcore does that.
      
      A few drivers were simplified to address that last change.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
       drivers/usb/core/hub.c       |   33 +++++++++------------
       drivers/usb/core/message.c   |    1
       drivers/usb/core/usb.c       |   65 +++++++++++++++++++++++++++++++++----------
       drivers/usb/core/usb.h       |   18 +++++++++++
       drivers/usb/input/hid-core.c |    2 -
       drivers/usb/misc/usbtest.c   |   10 ------
       drivers/usb/net/pegasus.c    |    2 -
       drivers/usb/net/usbnet.c     |    2 -
       8 files changed, 85 insertions(+), 48 deletions(-)
      db690874
  23. 28 10月, 2005 1 次提交
  24. 09 9月, 2005 11 次提交
    • D
      [PATCH] USB: usbnet (9/9) module for pl2301/2302 cables · 090ffa9d
      David Brownell 提交于
      This wraps up the conversion of the "usbnet" driver structure, by
      moving the Prolific PL-2201/2302 minidriver to a module of its own.
      It also includes some minor cleanups to the remaining "usbnet" file,
      notably removing that long changelog at the top.
      
      Minor historical note:  Linux 2.2 first called the driver for
      this hardware "plusb".
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      090ffa9d
    • D
      [PATCH] USB: usbnet (8/9) module for RNDIS devices · 64e04910
      David Brownell 提交于
      This adds host-side RNDIS support to the "usbnet" driver, so Linux can talk
      to various devices (often based on WinCE) that otherwise only Windows could
      talk to.
      
      Tested with little-endian Linux talking to a Linux-USB Ethernet/RNDIS based
      peripheral.  This also includes updates from Eddie C. Dost <ecd@brainaid.de>
      for big-endian SPARC Linux talking to a Nokia 9500 Communicator.
      
      It's still marked as EXPERIMENTAL because this code is so young.  This
      ought to let Linux to work with various cable modems that previously
      would have been "Windows Only".
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      64e04910
    • D
      [PATCH] USB: usbnet (7/9) module for CDC Ethernet · 4324fd49
      David Brownell 提交于
      Makes the CDC Ethernet support live in a separate driver module.
      This module is a bit special since it exports utility functions
      that are reused by the the Zaurus and RNDIS drivers, but it's
      not "core" like usbnet itself.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      4324fd49
    • D
      [PATCH] USB: usbnet (6/9) module for Zaurii and compatibles · 0aa599c5
      David Brownell 提交于
      This moves usbnet support for Zaurus and compatibles into its own module.
      Other than exporting a couple of helper functions, this just involved
      shuffling some code and updating the comments.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0aa599c5
    • D
      [PATCH] USB: usbnet (5/9) module for genesys gl620a cables · 47ee3051
      David Brownell 提交于
      This moves the GeneSys GL620USB-A support into its own driver file.
      It also fixes a "return wrong skb" glitch in the rx unbatching, as
      recently reported, and adds some missing byteswaps in the special
      "genelink" headers (so it might now work on big-endian Linux).
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      47ee3051
    • D
      [PATCH] USB: usbnet (4/9) module for net1080 cables · 904813cd
      David Brownell 提交于
      As with the "cdc_subset" and "asix" drivers, this just moves the net1080
      support into its one driver module.  In this case there's a small bit of
      extra cleanup involved, moving some funky framing logic into the tx_fixup()
      routine (resolving a long overdue FIXME).
      
      Minor historical note:  "usbnet" started out as "net1080", then got
      generalized to make it easier for other network drivers to reuse the
      urb queueing and fault management code here.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      904813cd
    • D
      [PATCH] USB: usbnet (3/9) module for ASIX Ethernet adapters · 2e55cc72
      David Brownell 提交于
      This patch moves the ASIX AX8817x driver into its own file, just using
      the "usbnet" infrastructure as a utility library.
      
       - As with "cdc_subset" this involved minor Kconfig/kbuild tweaks,
         moving code from one file to another, and exporting a few functions.
      
       - This includes updates from Jamie Painter to add (and use) a new hook
         to handle the different maximum transfer sizes for rx and tx sides.
      
       - Also from Jamie, some bugfixes:
          * MDIO byteorder (to address some PPC media negotiation problems);
          * Force alignment at key spots when using ax88772 framing (on some
            embedded hardware, the network stack will break otherwise);
          * Address some link reset problems.
      
      It also makes this driver use the standard (5 seconds vs half second)
      control timeouts used elsewhere in USB; and wraps a few lines before
      the 80th column (which previously needed it).
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      2e55cc72
    • D
      [PATCH] USB: usbnet (2/9) module for simple network links · 38bde1d4
      David Brownell 提交于
      This patch creates the first of several separate "minidriver" modules
      for "usbnet".  This one handles only the very simplest hardware, which
      can be handled almost entirely by the "usbnet" core.
      
          - Move device-specific bits into new "cdc_subset.c" driver,
            shrinking "usbnet" by a bunch;
      
          - Export the functions needed to support this minidriver
            (with EXPORT_SYMBOL_GPL);
      
          - Update Kconfig and kbuild accordingly.
      
      This one handles about a dozen different device types, with the most
      notable ones being Gumstix and most Linux-based PDAs (except Zaurus
      running that ancient code from Sharp).
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      38bde1d4
    • D
      [PATCH] USB: usbnet (1/9) clean up framing · f29fc259
      David Brownell 提交于
      This starts to prepare the core of "usbnet" to know less about various
      framing protocols that map Ethernet packets onto USB, so "minidrivers"
      can be modules that just plug into the core.
      
        - Remove some framing-specific code that cluttered the core:
      
            * net->hard_header_len records how much space to preallocate;
              now drivers that add their own framing (Net1080, GeneLink,
      	Zaurus, and RNDIS) will have smoother TX paths.  Even for
      	the drivers (Zaurus, Net1080) that need trailers.
      
            * defines new dev->hard_mtu, using this "hardware" limit to
              check changes to the link's settable "software" mtu.
      
            * now net->hard_header_len and dev->hard_mtu are set up in the
              driver bind() routines, if needed.
      
        - Transaction ID is no longer specific to the Net1080 framing;
          RNDIS needs one too.
      
        - Creates a new "usbnet.h" header with declarations that are shared
          between the core and what will be separate modules.
      
        - Plus a couple other minor tweaks, like recognizing -ESHUTDOWN
          means the keventd work should just shut itself down asap.
      
      The core code is only about 1/3 of this large file.  Splitting out the
      minidrivers into separate modules (e.g. ones for ASIX adapters,
      Zaurii and similar, CDC Ethernet, etc), in later patches, will
      improve maintainability and shrink typical runtime footprints.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      f29fc259
    • A
      [PATCH] USB: URB_ASYNC_UNLINK flag removed from the kernel · b375a049
      Alan Stern 提交于
      29 July 2005, Cambridge, MA:
      
      This afternoon Alan Stern submitted a patch to remove the URB_ASYNC_UNLINK
      flag from the Linux kernel.  Mr. Stern explained, "This flag is a relic
      from an earlier, less-well-designed system.  For over a year it hasn't
      been used for anything other than printing warning messages."
      
      An anonymous spokesman for the Linux kernel development community
      commented, "This is exactly the sort of thing we see happening all the
      time.  As the kernel evolves, support for old techniques and old code can
      be jettisoned and replaced by newer, better approaches.  Proprietary
      operating systems do not have the freedom or flexibility to change so
      quickly."
      
      Mr. Stern, a staff member at Harvard University's Rowland Institute who
      works on Linux only as a hobby, noted that the patch (labelled as548) did
      not update two files, keyspan.c and option.c, in the USB drivers' "serial"
      subdirectory.  "Those files need more extensive changes," he remarked.
      "They examine the status field of several URBs at times when they're not
      supposed to.  That will need to be fixed before the URB_ASYNC_UNLINK flag
      is removed."
      
      Greg Kroah-Hartman, the kernel maintainer responsible for overseeing all
      of Linux's USB drivers, did not respond to our inquiries or return our
      calls.  His only comment was "Applied, thanks."
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b375a049
    • D
      [PATCH] USB: usbnet and unsigned gfp_flags · 0d9899f8
      david-b@pacbell.net 提交于
      This just fixes some gfp flags warnings that joined us recently.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0d9899f8