1. 28 3月, 2007 1 次提交
  2. 23 3月, 2007 2 次提交
  3. 19 3月, 2007 1 次提交
  4. 17 3月, 2007 5 次提交
  5. 16 3月, 2007 1 次提交
    • A
      [PATCH] sysfs and driver core: add callback helper, used by SCSI and S390 · d9a9cdfb
      Alan Stern 提交于
      This patch (as868) adds a helper routine for device drivers that need
      to set up a callback to perform some action in a different process's
      context.  This is intended for use by attribute methods that want to
      unregister themselves or their parent device.  Attribute method calls
      are mutually exclusive with unregistration, so such actions cannot be
      taken directly.
      
      Two attribute methods are converted to use the new helper routine: one
      for SCSI device deletion and one for System/390 ccwgroup devices.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: Hugh Dickins <hugh@veritas.com>
      Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
      Cc: Oliver Neukum <oneukum@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d9a9cdfb
  6. 15 3月, 2007 1 次提交
  7. 13 3月, 2007 2 次提交
    • E
      [PATCH] pci: Repair pci_save/restore_state so we can restore one save many times. · 9f35575d
      Eric W. Biederman 提交于
      Because we do not reserve space for the pci-x and pci-e state in struct
      pci dev we need to dynamically allocate it.  However because we need
      to support restore being called multiple times after a single save
      it is never safe to free the buffers we have allocated to hold the
      state.
      
      So this patch modifies the save routines to first check to see
      if we have already allocated a state buffer before allocating
      a new one.  Then the restore routines are modified to not free
      the state after restoring it.  Simple and it fixes some subtle
      error path handling bugs, that are hard to test for.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Acked-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9f35575d
    • E
      [PATCH] msi: Safer state caching. · 392ee1e6
      Eric W. Biederman 提交于
      There are two ways pci_save_state and pci_restore_state are used.  As
      helper functions during suspend/resume, and as helper functions around
      a hardware reset event.  When used as helper functions around a hardware
      reset event there is no reason to believe the calls will be paired, nor
      is there a good reason to believe that if we restore the msi state from
      before the reset that it will match the current msi state.  Since arch
      code may change the msi message without going through the driver, drivers
      currently do not have enough information to even know when to call
      pci_save_state to ensure they will have msi state in sync with the other
      kernel irq reception data structures.
      
      It turns out the solution is straight forward, cache the state in the
      existing msi data structures (not the magic pci saved things) and
      have the msi code update the cached state each time we write to the hardware.
      This means we never need to read the hardware to figure out what the hardware
      state should be.
      
      By modifying the caching in this manner we get to remove our save_state
      routines and only need to provide restore_state routines.
      
      The only fields that were at all tricky to regenerate were the msi and msi-x
      control registers and the way we regenerate them currently is a bit dependent
      upon assumptions on how we use the allow msi registers to be configured and used
      making the code a little bit brittle.  If we ever change what cases we allow
      or how we configure the msi bits we can address the fragility then.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      Acked-by: NAuke Kok <auke-jan.h.kok@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      392ee1e6
  8. 09 3月, 2007 1 次提交
  9. 08 3月, 2007 2 次提交
    • D
      [PATCH] Add epoll compat_ code to fs/compat.c · f6dfb4fd
      Davide Libenzi 提交于
      IA64 and ARM-OABI are currently using their own version of epoll compat_
      code.
      
      An architecture needs epoll_event translation if alignof(u64) in 32 bit
      mode is different from alignof(u64) in 64 bit mode.  If an architecture
      needs epoll_event translation, it must define struct compat_epoll_event in
      asm/compat.h and set CONFIG_HAVE_COMPAT_EPOLL_EVENT and use
      compat_sys_epoll_ctl and compat_sys_epoll_wait.
      
      All 64 bit architecture should use compat_sys_epoll_pwait.
      
      [sfr: restructure and move to fs/compat.c, remove MIPS version
      of compat_sys_epoll_pwait, use __put_user_unaligned]
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f6dfb4fd
    • V
      [MTD] [NAND] make oobavail public · 1f92267c
      Vitaly Wool 提交于
      During the MTD rework the oobavail parameter of mtd_info structure has become
      private. This is not quite correct in terms of integrity and logic. If we have
      means to write to OOB area, then we'd like to know upfront how many bytes out
      of OOB are spare per page to be able to adapt to specific cases.
      The patch inlined adds the public oobavail parameter.
      Signed-off-by: NVitaly Wool <vwool@ru.mvista.com>
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      1f92267c
  10. 07 3月, 2007 5 次提交
  11. 06 3月, 2007 6 次提交
    • P
      mmc: require explicit support for high-speed · cd9277c0
      Pierre Ossman 提交于
      The new high-speed timings are similar to each other and the old
      system, but not identical. And although things "just work" most of
      the time, sometimes it does not. So we need to start marking which
      hosts are known to fully comply with the new timings.
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      cd9277c0
    • P
      ncpfs: make sure server connection survives a kill · c5f93cf1
      Pierre Ossman 提交于
      Use internal buffers instead of the ones supplied by the caller
      so that a caller can be interrupted without having to abort the
      entire ncp connection.
      Signed-off-by: NPierre Ossman <ossman@cendio.se>
      Acked-by: NPetr Vandrovec <petr@vandrovec.name>
      c5f93cf1
    • D
      mv643xx_eth: Place explicit port number in mv643xx_eth_platform_data · 84dd619e
      Dale Farnsworth 提交于
      We were using the platform_device.id field to identify which ethernet
      port is used for mv643xx_eth device.  This is not generally correct.
      It will be incorrect, for example, if a hardware platform uses a single
      port but not the first port.  Here, we add an explicit port_number field
      to struct mv643xx_eth_platform_data.
      
      This makes the mv643xx_eth_platform_data structure required, but that
      isn't an issue since all users currently provide it already.
      Signed-off-by: NDale Farnsworth <dale@farnsworth.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      84dd619e
    • J
      bonding: Improve IGMP join processing · a816c7c7
      Jay Vosburgh 提交于
      	In active-backup mode, the current bonding code duplicates IGMP
      traffic to all slaves, so that switches are up to date in case of a
      failover from an active to a backup interface.  If bonding then fails
      back to the original active interface, it is likely that the "active
      slave" switch's IGMP forwarding for the port will be out of date until
      some event occurs to refresh the switch (e.g., a membership query).
      
      	This patch alters the behavior of bonding to no longer flood
      IGMP to all ports, and to issue IGMP JOINs to the newly active port at
      the time of a failover.  This insures that switches are kept up to date
      for all cases.
      
      	"GOELLESCH Niels" <niels.goellesch@eurocontrol.int> originally
      reported this problem, and included a patch.  His original patch was
      modified by Jay Vosburgh to additionally remove the existing IGMP flood
      behavior, use RCU, streamline code paths, fix trailing white space, and
      adjust for style.
      Signed-off-by: NJay Vosburgh <fubar@us.ibm.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      a816c7c7
    • F
      [PPPOE]: Use ifindex instead of device pointer in key lookups. · 6f30e186
      Florian Zumbiehl 提交于
      Otherwise we can potentially try to dereference a NULL device
      pointer in some cases.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6f30e186
    • P
      [NETFILTER]: conntrack: fix {nf,ip}_ct_iterate_cleanup endless loops · ec68e97d
      Patrick McHardy 提交于
      Fix {nf,ip}_ct_iterate_cleanup unconfirmed list handling:
      
      - unconfirmed entries can not be killed manually, they are removed on
        confirmation or final destruction of the conntrack entry, which means
        we might iterate forever without making forward progress.
      
        This can happen in combination with the conntrack event cache, which
        holds a reference to the conntrack entry, which is only released when
        the packet makes it all the way through the stack or a different
        packet is handled.
      
      - taking references to an unconfirmed entry and using it outside the
        locked section doesn't work, the list entries are not refcounted and
        another CPU might already be waiting to destroy the entry
      
      What the code really wants to do is make sure the references of the hash
      table to the selected conntrack entries are released, so they will be
      destroyed once all references from skbs and the event cache are dropped.
      
      Since unconfirmed entries haven't even entered the hash yet, simply mark
      them as dying and skip confirmation based on that.
      
      Reported and tested by Chuck Ebbert <cebbert@redhat.com>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ec68e97d
  12. 05 3月, 2007 6 次提交
    • H
      [PATCH] timer/hrtimer: take per cpu locks in sane order · e81ce1f7
      Heiko Carstens 提交于
      Doing something like this on a two cpu system
      
        # echo 0 > /sys/devices/system/cpu/cpu0/online
        # echo 1 > /sys/devices/system/cpu/cpu0/online
        # echo 0 > /sys/devices/system/cpu/cpu1/online
      
      will give me this:
      
        =======================================================
        [ INFO: possible circular locking dependency detected ]
        2.6.21-rc2-g562aa1d4-dirty #7
        -------------------------------------------------------
        bash/1282 is trying to acquire lock:
         (&cpu_base->lock_key){.+..}, at: [<000000000005f17e>] hrtimer_cpu_notify+0xc6/0x240
      
        but task is already holding lock:
         (&cpu_base->lock_key#2){.+..}, at: [<000000000005f174>] hrtimer_cpu_notify+0xbc/0x240
      
        which lock already depends on the new lock.
      
      This happens because we have the following code in kernel/hrtimer.c:
      
        migrate_hrtimers(int cpu)
        [...]
        old_base = &per_cpu(hrtimer_bases, cpu);
        new_base = &get_cpu_var(hrtimer_bases);
        [...]
        spin_lock(&new_base->lock);
        spin_lock(&old_base->lock);
      
      Which means the spinlocks are taken in an order which depends on which cpu
      gets shut down from which other cpu. Therefore lockdep complains that there
      might be an ABBA deadlock. Since migrate_hrtimers() gets only called on
      cpu hotplug it's safe to assume that it isn't executed concurrently on a
      
      The same problem exists in kernel/timer.c: migrate_timers().
      
      As pointed out by Christian Borntraeger one possible solution to avoid
      the locking order complaints would be to make sure that the locks are
      always taken in the same order. E.g. by taking the lock of the cpu with
      the lower number first.
      
      To achieve this we introduce two new spinlock functions double_spin_lock
      and double_spin_unlock which lock or unlock two locks in a given order.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Roman Zippel <zippel@linux-m68k.org>
      Cc: John Stultz <johnstul@us.ibm.com>
      Cc: Christian Borntraeger <cborntra@de.ibm.com>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e81ce1f7
    • C
      [PATCH] Page migration: Fix vma flag checking · 0dc952dc
      Christoph Lameter 提交于
      Currently we do not check for vma flags if sys_move_pages is called to move
      individual pages.  If sys_migrate_pages is called to move pages then we
      check for vm_flags that indicate a non migratable vma but that still
      includes VM_LOCKED and we can migrate mlocked pages.
      
      Extract the vma_migratable check from mm/mempolicy.c, fix it and put it
      into migrate.h so that is can be used from both locations.
      
      Problem was spotted by Lee Schermerhorn
      Signed-off-by: NChristoph Lameter <clameter@sgi.com>
      Signed-off-by: NLee Schermerhorn <lee.schermerhorn@hp.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0dc952dc
    • C
      [PATCH] sched: remove SMT nice · 69f7c0a1
      Con Kolivas 提交于
      Remove the SMT-nice feature which idles sibling cpus on SMT cpus to
      facilitiate nice working properly where cpu power is shared.  The idling of
      cpus in the presence of runnable tasks is considered too fragile, easy to
      break with outside code, and the complexity of managing this system if an
      architecture comes along with many logical cores sharing cpu power will be
      unworkable.
      
      Remove the associated per_cpu_gain variable in sched_domains used only by
      this code.
      
      Also:
      
        The reason is that with dynticks enabled, this code breaks without yet
        further tweaks so dynticks brought on the rapid demise of this code.  So
        either we tweak this code or kill it off entirely.  It was Ingo's preference
        to kill it off.  Either way this needs to happen for 2.6.21 since dynticks
        has gone in.
      Signed-off-by: NCon Kolivas <kernel@kolivas.org>
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Cc: Nick Piggin <nickpiggin@yahoo.com.au>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      69f7c0a1
    • D
      [PATCH] gpio_keys driver shouldn't be ARM-specific · 49015bee
      David Brownell 提交于
      The gpio_keys driver is wrongly ARM-specific; it can't build on
      other platforms with GPIO suport.  This fixes that problem.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: Dmitry Torokhov <dtor@mail.ru>
      Cc: pHilipp Zabel <philipp.zabel@gmail.com>
      Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Cc: Ben Nizette <ben.nizette@iinet.net.au>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      49015bee
    • E
      [PATCH] msi: sanely support hardware level msi disabling · f5f2b131
      Eric W. Biederman 提交于
      In some cases when we are not using msi we need a way to ensure that the
      hardware does not have an msi capability enabled.  Currently the code has been
      calling disable_msi_mode to try and achieve that.  However disable_msi_mode
      has several other side effects and is only available when msi support is
      compiled in so it isn't really appropriate.
      
      Instead this patch implements pci_msi_off which disables all msi and msix
      capabilities unconditionally with no additional side effects.
      
      pci_disable_device was redundantly clearing the bus master enable flag and
      clearing the msi enable bit.  A device that is not allowed to perform bus
      mastering operations cannot generate intx or msi interrupt messages as those
      are essentially a special case of dma, and require bus mastering.  So the call
      in pci_disable_device to disable msi capabilities was redundant.
      
      quirk_pcie_pxh also called disable_msi_mode and is updated to use pci_msi_off.
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Cc: Michael Ellerman <michael@ellerman.id.au>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      f5f2b131
    • A
      [MIPS] Convert to RTC-class ds1742 driver · a0574e04
      Atsushi Nemoto 提交于
      The generic rtc-ds1742 driver can be used for RBTX4927 and JMR3927
      (with __swizzle_addr trick).  This patch also removes MIPS local
      DS1742 stuff.
      Signed-off-by: NAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      a0574e04
  13. 04 3月, 2007 7 次提交