1. 07 1月, 2006 16 次提交
    • N
      [PATCH] mm: rmap optimisation · 9617d95e
      Nick Piggin 提交于
      Optimise rmap functions by minimising atomic operations when we know there
      will be no concurrent modifications.
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Cc: Hugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9617d95e
    • N
      [PATCH] mm: dma32 zone statistics · 9328b8fa
      Nick Piggin 提交于
      Add dma32 to zone statistics.  Also attempt to arrange struct page_state a
      bit better (visually).
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Cc: Andi Kleen <ak@muc.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9328b8fa
    • A
      [PATCH] kill last zone_reclaim() bits · 7756b9e4
      Andrew Morton 提交于
      Remove the last bits of Martin's ill-fated sys_set_zone_reclaim().
      
      Cc: Martin Hicks <mort@wildopensource.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7756b9e4
    • R
      [PATCH] Cleanup bootmem allocator and fix alloc_bootmem_low · 008857c1
      Ravikiran G Thirumalai 提交于
      Patch cleans up the alloc_bootmem fix for swiotlb.  Patch removes
      alloc_bootmem_*_limit api and fixes alloc_boot_*low api to do the right
      thing -- allocate from low32 memory.
      Signed-off-by: NRavikiran Thirumalai <kiran@scalex86.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      008857c1
    • N
      [PATCH] mm: remove pcp low · 2d92c5c9
      Nick Piggin 提交于
      struct per_cpu_pages.low is useless.  Remove it.
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Cc: Hugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2d92c5c9
    • A
      [PATCH] sparsemem: provide pfn_to_nid · 161599ff
      Andy Whitcroft 提交于
      Before SPARSEMEM is initialised we cannot provide an efficient pfn_to_nid()
      implmentation; before initialisation is complete we use early_pfn_to_nid()
      to provide location information.  Until recently there was no non-init user
      of this functionality.  Provide a post init pfn_to_nid() implementation.
      
      Note that this implmentation assumes that the pfn passed has been validated
      with pfn_valid().  The current single user of this function already has
      this check.
      Signed-off-by: NAndy Whitcroft <apw@shadowen.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      161599ff
    • A
      [PATCH] flatmem split out memory model · 2bdaf115
      Andy Whitcroft 提交于
      There are three places we define pfn_to_nid().  Two in linux/mmzone.h and one
      in asm/mmzone.h.  These in essence represent the three memory models.  The
      definition in linux/mmzone.h under !NEED_MULTIPLE_NODES is both the FLATMEM
      definition and the optimisation for single NUMA nodes; the one under SPARSEMEM
      is the NUMA sparsemem one; the one in asm/mmzone.h under DISCONTIGMEM is the
      discontigmem one.  This is not in the least bit obvious, particularly the
      connection between the non-NUMA optimisations and the memory models.
      
      Two patches:
      
      flatmem-split-out-memory-model: simplifies the selection of pfn_to_nid()
      implementations.  The selection is based primarily off the memory model
      selected.  Optimisations for non-NUMA are applied where needed.
      
      sparse-provide-pfn_to_nid: implement pfn_to_nid() for SPARSEMEM
      
      This patch:
      
      pfn_to_nid is memory model specific
      
      The pfn_to_nid() call is memory model specific.  It represents the locality
      identifier for the memory passed.  Classically this would be a NUMA node,
      but not a chunk of memory under DISCONTIGMEM.
      
      The SPARSEMEM and FLATMEM memory model non-NUMA versions of pfn_to_nid()
      are folded together under NEED_MULTIPLE_NODES, while DISCONTIGMEM has its
      own optimisation.  This is all very confusing.
      
      This patch splits out each implementation of pfn_to_nid() so that we can
      see them and the optimisations to each.
      Signed-off-by: NAndy Whitcroft <apw@shadowen.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2bdaf115
    • R
      [PATCH] Shut up warnings in ipc/shm.c · 03b00ebc
      Russell King 提交于
      Fix two warnings in ipc/shm.c
      
      ipc/shm.c:122: warning: statement with no effect
      ipc/shm.c:560: warning: statement with no effect
      
      by converting the macros to empty inline functions.  For safety, let's do
      all three.  This also has the advantage that typechecking gets performed
      even without CONFIG_SHMEM enabled.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Cc: Hugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      03b00ebc
    • M
      [PATCH] mm: remove arch independent NODES_SPAN_OTHER_NODES · a94b3ab7
      Mike Kravetz 提交于
      The NODES_SPAN_OTHER_NODES config option was created so that DISCONTIGMEM
      could handle pSeries numa layouts.  However, support for DISCONTIGMEM has
      been replaced by SPARSEMEM on powerpc.  As a result, this config option and
      supporting code is no longer needed.
      
      I have already sent a patch to Paul that removes the option from powerpc
      specific code.  This removes the arch independent piece.  Doesn't really
      matter which is applied first.
      Signed-off-by: NMike Kravetz <kravetz@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a94b3ab7
    • A
      [PATCH] mm: pfn_to_pgdat not used in common code · d5afa6dc
      Andy Whitcroft 提交于
      pfn_to_pgdat() isn't used in common code.  Remove definition.
      Signed-off-by: NAndy Whitcroft <apw@shadowen.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d5afa6dc
    • A
      [PATCH] mm: kvaddr_to_nid not used in common code · 9f3fd602
      Andy Whitcroft 提交于
      kvaddr_to_nid() isn't used in common code nor in i386 code.  Remove these
      definitions.
      Signed-off-by: NAndy Whitcroft <apw@shadowen.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      9f3fd602
    • C
      [PATCH] Remove old node based policy interface from mempolicy.c · 21abb147
      Christoph Lameter 提交于
      mempolicy.c contains provisional interface for huge page allocation based on
      node numbers.  This is in use in SLES9 but was never used (AFAIK) in upstream
      versions of Linux.
      
      Huge page allocations now use zonelists to figure out where to allocate pages.
       The use of zonelists allows us to find the closest hugepage which was the
      consideration of the NUMA distance for huge page allocations.
      
      Remove the obsolete functions.
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Cc: Andi Kleen <ak@muc.de>
      Acked-by: NWilliam Lee Irwin III <wli@holomorphy.com>
      Cc: Adam Litke <agl@us.ibm.com>
      Acked-by: NPaul Jackson <pj@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      21abb147
    • C
      [PATCH] Add NUMA policy support for huge pages. · 5da7ca86
      Christoph Lameter 提交于
      The huge_zonelist() function in the memory policy layer provides an list of
      zones ordered by NUMA distance.  The hugetlb layer will walk that list looking
      for a zone that has available huge pages but is also in the nodeset of the
      current cpuset.
      
      This patch does not contain the folding of find_or_alloc_huge_page() that was
      controversial in the earlier discussion.
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Cc: Andi Kleen <ak@muc.de>
      Acked-by: NWilliam Lee Irwin III <wli@holomorphy.com>
      Cc: Adam Litke <agl@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5da7ca86
    • B
      [PATCH] madvise(MADV_REMOVE): remove pages from tmpfs shm backing store · f6b3ec23
      Badari Pulavarty 提交于
      Here is the patch to implement madvise(MADV_REMOVE) - which frees up a
      given range of pages & its associated backing store.  Current
      implementation supports only shmfs/tmpfs and other filesystems return
      -ENOSYS.
      
      "Some app allocates large tmpfs files, then when some task quits and some
      client disconnect, some memory can be released.  However the only way to
      release tmpfs-swap is to MADV_REMOVE". - Andrea Arcangeli
      
      Databases want to use this feature to drop a section of their bufferpool
      (shared memory segments) - without writing back to disk/swap space.
      
      This feature is also useful for supporting hot-plug memory on UML.
      
      Concerns raised by Andrew Morton:
      
      - "We have no plan for holepunching!  If we _do_ have such a plan (or
        might in the future) then what would the API look like?  I think
        sys_holepunch(fd, start, len), so we should start out with that."
      
      - Using madvise is very weird, because people will ask "why do I need to
        mmap my file before I can stick a hole in it?"
      
      - None of the other madvise operations call into the filesystem in this
        manner.  A broad question is: is this capability an MM operation or a
        filesytem operation?  truncate, for example, is a filesystem operation
        which sometimes has MM side-effects.  madvise is an mm operation and with
        this patch, it gains FS side-effects, only they're really, really
        significant ones."
      
      Comments:
      
      - Andrea suggested the fs operation too but then it's more efficient to
        have it as a mm operation with fs side effects, because they don't
        immediatly know fd and physical offset of the range.  It's possible to
        fixup in userland and to use the fs operation but it's more expensive,
        the vmas are already in the kernel and we can use them.
      
      Short term plan &  Future Direction:
      
      - We seem to need this interface only for shmfs/tmpfs files in the short
        term.  We have to add hooks into the filesystem for correctness and
        completeness.  This is what this patch does.
      
      - In the future, plan is to support both fs and mmap apis also.  This
        also involves (other) filesystem specific functions to be implemented.
      
      - Current patch doesn't support VM_NONLINEAR - which can be addressed in
        the future.
      Signed-off-by: NBadari Pulavarty <pbadari@us.ibm.com>
      Cc: Hugh Dickins <hugh@veritas.com>
      Cc: Andrea Arcangeli <andrea@suse.de>
      Cc: Michael Kerrisk <mtk-manpages@gmx.net>
      Cc: Ulrich Drepper <drepper@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f6b3ec23
    • H
      [PATCH] reiser4: vfs: add truncate_inode_pages_range() · d7339071
      Hans Reiser 提交于
      This patch makes truncate_inode_pages_range from truncate_inode_pages.
      truncate_inode_pages became a one-liner call to truncate_inode_pages_range.
      
      Reiser4 needs truncate_inode_pages_ranges because it tries to keep
      correspondence between existences of metadata pointing to data pages and pages
      to which those metadata point to.  So, when metadata of certain part of file
      is removed from filesystem tree, only pages of corresponding range are to be
      truncated.
      
      (Needed by the madvise(MADV_REMOVE) patch)
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d7339071
    • H
      [PATCH] nbd: fix TX/RX race condition · 4b2f0260
      Herbert Xu 提交于
      Janos Haar of First NetCenter Bt.  reported numerous crashes involving the
      NBD driver.  With his help, this was tracked down to bogus bio vectors
      which in turn was the result of a race condition between the
      receive/transmit routines in the NBD driver.
      
      The bug manifests itself like this:
      
      CPU0				CPU1
      do_nbd_request
      	add req to queuelist
      	nbd_send_request
      		send req head
      		for each bio
      			kmap
      			send
      				nbd_read_stat
      					nbd_find_request
      					nbd_end_request
      			kunmap
      
      When CPU1 finishes nbd_end_request, the request and all its associated
      bio's are freed.  So when CPU0 calls kunmap whose argument is derived from
      the last bio, it may crash.
      
      Under normal circumstances, the race occurs only on the last bio.  However,
      if an error is encountered on the remote NBD server (such as an incorrect
      magic number in the request), or if there were a bug in the server, it is
      possible for the nbd_end_request to occur any time after the request's
      addition to the queuelist.
      
      The following patch fixes this problem by making sure that requests are not
      added to the queuelist until after they have been completed transmission.
      
      In order for the receiving side to be ready for responses involving
      requests still being transmitted, the patch introduces the concept of the
      active request.
      
      When a response matches the current active request, its processing is
      delayed until after the tranmission has come to a stop.
      
      This has been tested by Janos and it has been successful in curing this
      race condition.
      
      From: Herbert Xu <herbert@gondor.apana.org.au>
      
        Here is an updated patch which removes the active_req wait in
        nbd_clear_queue and the associated memory barrier.
      
        I've also clarified this in the comment.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Cc: <djani22@dynamicweb.hu>
      Cc: Paul Clements <Paul.Clements@SteelEye.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4b2f0260
  2. 06 1月, 2006 4 次提交
  3. 05 1月, 2006 17 次提交
    • D
      [PATCH] Driver Core: Add platform_device_del() · 93ce3061
      Dmitry Torokhov 提交于
      Driver core: add platform_device_del function
      
      Having platform_device_del90 allows more straightforward error
      handling code in drivers registering platform devices.
      Signed-off-by: NDmitry Torokhov <dtor@mail.ru>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      93ce3061
    • R
      [PATCH] Input: fix add modalias support build error · e39b8433
      Rusty Russell 提交于
      Fix build when scripts/mod/file2alias.c includes linux/input.h, which
      tries to include /usr/include/linux/mod_devicetable.h:
      
       In file included from scripts/mod/file2alias.c:40:
       include/linux/input.h:21:35: linux/mod_devicetable.h: No such file or directory
       make[2]: *** [scripts/mod/file2alias.o] Error 1
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e39b8433
    • R
      [PATCH] Input: add modalias support · 1d8f430c
      Rusty Russell 提交于
      Here's the patch for modalias support for input classes.  It uses
      comma-separated numbers, and doesn't describe all the potential keys (no
      module currently cares, and that would make the strings huge).  The
      changes to input.h are to move the definitions needed by file2alias
      outside __KERNEL__.  I chose not to move those definitions to
      mod_devicetable.h, because there are so many that it might break compile
      of something else in the kernel.
      
      The rest is fairly straightforward.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      CC: Kay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      1d8f430c
    • A
      [PATCH] kobject_uevent CONFIG_NET=n fix · f743ca5e
      akpm@osdl.org 提交于
      lib/lib.a(kobject_uevent.o)(.text+0x25f): In function `kobject_uevent':
      : undefined reference to `__alloc_skb'
      lib/lib.a(kobject_uevent.o)(.text+0x2a1): In function `kobject_uevent':
      : undefined reference to `skb_over_panic'
      lib/lib.a(kobject_uevent.o)(.text+0x31d): In function `kobject_uevent':
      : undefined reference to `skb_over_panic'
      lib/lib.a(kobject_uevent.o)(.text+0x356): In function `kobject_uevent':
      : undefined reference to `netlink_broadcast'
      lib/lib.a(kobject_uevent.o)(.init.text+0x9): In function `kobject_uevent_init':
      : undefined reference to `netlink_kernel_create'
      make: *** [.tmp_vmlinux1] Error 1
      
      Netlink is unconditionally enabled if CONFIG_NET, so that's OK.
      
      kobject_uevent.o is compiled even if !CONFIG_HOTPLUG, which is lazy.
      
      Let's compound the sin.
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      f743ca5e
    • K
      [PATCH] driver core: replace "hotplug" by "uevent" · 312c004d
      Kay Sievers 提交于
      Leave the overloaded "hotplug" word to susbsystems which are handling
      real devices. The driver core does not "plug" anything, it just exports
      the state to userspace and generates events.
      Signed-off-by: NKay Sievers <kay.sievers@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      312c004d
    • K
      [PATCH] merge kobject_uevent and kobject_hotplug · 5f123fbd
      Kay Sievers 提交于
      The distinction between hotplug and uevent does not make sense these
      days, netlink events are the default.
      
      udev depends entirely on netlink uevents. Only during early boot and
      in initramfs, /sbin/hotplug is needed. So merge the two functions and
      provide only one interface without all the options.
      
      The netlink layer got a nice generic interface with named slots
      recently, which is probably a better facility to plug events for
      subsystem specific events.
      Also the new poll() interface to /proc/mounts is a nicer way to
      notify about changes than sending events through the core.
      The uevents should only be used for driver core related requests to
      userspace now.
      Signed-off-by: NKay Sievers <kay.sievers@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      5f123fbd
    • K
      [PATCH] remove mount/umount uevents from superblock handling · 033b96fd
      Kay Sievers 提交于
      The names of these events have been confusing from the beginning
      on, as they have been more like claim/release events. We needed these
      events for noticing HAL if storage devices have been mounted.
      
      Thanks to Al, we have the proper solution now and can poll()
      /proc/mounts instead to get notfied about mount tree changes.
      Signed-off-by: NKay Sievers <kay.sievers@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      033b96fd
    • K
      [PATCH] remove CONFIG_KOBJECT_UEVENT option · 0296b228
      Kay Sievers 提交于
      It makes zero sense to have hotplug, but not the netlink
      events enabled today. Remove this option and merge the
      kobject_uevent.h header into the kobject.h header file.
      Signed-off-by: NKay Sievers <kay.sievers@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0296b228
    • M
      [PATCH] USB Storage: add alauda support · e80b0fad
      Matthew Dharm 提交于
      This patch adds another usb-storage subdriver, which supports two fairly
      old dual-XD/SmartMedia reader-writers (USB1.1 devices).
      
      This driver was written by Daniel Drake <dsd@gentoo.org> -- he notes
      that he wrote this driver without specs, however a vendor-supplied GPL
      driver for the previous generation of products ("sma03") did prove to be
      quite useful, as did the sddr09 driver which also has to deal with
      low-level physical block layout on SmartMedia.
      
      The original patch has been reformed by me, as it clashed with the
      libusual patches.
      
      We really need to consolidate some of this common SmartMedia code, and
      get together with the MTD guys to share it with them as well.
      Signed-off-by: NDaniel Drake <dsd@gentoo.org>
      Signed-off-by: NMatthew Dharm <mdharm-usb@one-eyed-alien.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e80b0fad
    • A
      [PATCH] USB: Store port number in usb_device · 12c3da34
      Alan Stern 提交于
      This patch (as610) adds a field to struct usb_device to store the device's
      port number.  This allows us to remove several loops in the hub driver
      (searching for a particular device among all the entries in the parent's
      array of children).
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      12c3da34
    • A
      [PATCH] USB: Consider power budget when choosing configuration · 55c52718
      Alan Stern 提交于
      This patch (as609) changes the way we keep track of power budgeting for
      USB hubs and devices, and it updates the choose_configuration routine to
      take this information into account.  (This is something we should have
      been doing all along.)  A new field in struct usb_device holds the amount
      of bus current available from the upstream port, and the usb_hub structure
      keeps track of the current available for each downstream port.
      
      Two new rules for configuration selection are added:
      
      	Don't select a self-powered configuration when only bus power
      	is available.
      
      	Don't select a configuration requiring more bus power than is
      	available.
      
      However the first rule is #if-ed out, because I found that the internal
      hub in my HP USB keyboard claims that its only configuration is
      self-powered.  The rule would prevent the configuration from being chosen,
      leaving the hub & keyboard unconfigured.  Since similar descriptor errors
      may turn out to be fairly common, it seemed wise not to include a rule
      that would break automatic configuration unnecessarily for such devices.
      
      The second rule may also trigger unnecessarily, although this should be
      less common.  More likely it will annoy people by sometimes failing to
      accept configurations that should never have been chosen in the first
      place.
      
      The patch also changes usbcore's reaction when no configuration is
      suitable.  Instead of raising an error and rejecting the device, now
      the core will simply leave the device unconfigured.  People can always
      work around such problems by installing configurations manually through
      sysfs.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      55c52718
    • A
      [PATCH] USB: Remove USB private semaphore · 9ad3d6cc
      Alan Stern 提交于
      This patch (as605) removes the private udev->serialize semaphore,
      relying instead on the locking provided by the embedded struct device's
      semaphore.  The changes are confined to the core, except that the
      usb_trylock_device routine now uses the return convention of
      down_trylock rather than down_read_trylock (they return opposite values
      for no good reason).
      
      A couple of other associated changes are included as well:
      
      	Now that we aren't concerned about HCDs that avoid using the
      	hcd glue layer, usb_disconnect no longer needs to acquire the
      	usb_bus_lock -- that can be done by usb_remove_hcd where it
      	belongs.
      
      	Devices aren't locked over the same scope of code in
      	usb_new_device and hub_port_connect_change as they used to be.
      	This shouldn't cause any trouble.
      
      Along with the preceding driver core patch, this needs a lot of testing.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      9ad3d6cc
    • G
      [PATCH] USB: remove .owner field from struct usb_driver · 75318d2d
      Greg Kroah-Hartman 提交于
      It is no longer needed, so let's remove it, saving a bit of memory.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      75318d2d
    • G
      [PATCH] USB: make registering a usb driver automatically set the module owner · 2143acc6
      Greg Kroah-Hartman 提交于
      This fixes the driver that forgot to set the module owner up.  Now we
      can remove the unneeded pointer from the usb driver structure.  The idea
      for how to do this was from Al Viro, who did this for the PCI drivers.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      2143acc6
    • G
      [PATCH] USB: allow usb drivers to disable dynamic ids · ba9dc657
      Greg Kroah-Hartman 提交于
      This lets drivers, like the usb-serial ones, disable the ability to add
      ids from sysfs.
      
      The usb-serial drivers are "odd" in that they are really usb-serial bus
      drivers, not usb bus drivers, so the dynamic id logic will have to go
      into the usb-serial bus core for those drivers to get that ability.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ba9dc657
    • G
      [PATCH] USB: add dynamic id functionality to USB core · 733260ff
      Greg Kroah-Hartman 提交于
      Echo the usb vendor and product id to the "new_id" file in the driver's
      sysfs directory, and then that driver will be able to bind to a device
      with those ids if it is present.
      
      Example:
      	echo 0557 2008 > /sys/bus/usb/drivers/foo_driver/new_id
      adds the hex values 0557 and 2008 to the device id table for the foo_driver.
      
      Note, usb-serial drivers do not currently work with this capability yet.
      usb-storage also might have some oddities.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      733260ff
    • P
      [PATCH] USB: drivers/usb/storage/libusual · a00828e9
      Pete Zaitcev 提交于
      This patch adds a shim driver libusual, which routes devices between
      usb-storage and ub according to the common table, based on unusual_devs.h.
      The help and example syntax is in Kconfig.
      Signed-off-by: NPete Zaitcev <zaitcev@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      a00828e9
  4. 04 1月, 2006 3 次提交
    • S
      [NET]: Don't exclude broadcast addresses from is_multicast_ether_addr() · 88df8ef5
      Stephen Hemminger 提交于
      The check for multicast shouldn't exclude broadcast type addresses.
      This reverts the incorrect change done in 2.6.13.
      
      The broadcast address is a multicast address and should be excluded
      from being a valid_ether_address for use in bridging or device address.
      Signed-off-by: NStephen Hemminger <shemminger@osdl.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      88df8ef5
    • B
      [NET]: Speed up __alloc_skb() · 4947d3ef
      Benjamin LaHaise 提交于
      From: Benjamin LaHaise <bcrl@kvack.org>
      
      In __alloc_skb(), the use of skb_shinfo() which casts a u8 * to the 
      shared info structure results in gcc being forced to do a reload of the 
      pointer since it has no information on possible aliasing.  Fix this by 
      using a pointer to refer to skb_shared_info.
      
      By initializing skb_shared_info sequentially, the write combining buffers 
      can reduce the number of memory transactions to a single write.  Reorder 
      the initialization in __alloc_skb() to match the structure definition.  
      There is also an alignment issue on 64 bit systems with skb_shared_info 
      by converting nr_frags to a short everything packs up nicely.
      
      Also, pass the slab cache pointer according to the fclone flag instead 
      of using two almost identical function calls.
      
      This raises bw_unix performance up to a peak of 707KB/s when combined 
      with the spinlock patch.  It should help other networking protocols, too.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4947d3ef
    • D
      [PPPOX]: Fix assignment into const proto_ops. · 17ba15fb
      David S. Miller 提交于
      And actually, with this, the whole pppox layer can basically
      be removed and subsumed into pppoe.c, no other pppox sub-protocol
      implementation exists and we've had this thing for at least 4
      years.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      17ba15fb