1. 03 7月, 2010 1 次提交
  2. 01 7月, 2010 2 次提交
  3. 29 6月, 2010 1 次提交
    • B
      ethtool: Fix potential user buffer overflow for ETHTOOL_{G, S}RXFH · bf988435
      Ben Hutchings 提交于
      struct ethtool_rxnfc was originally defined in 2.6.27 for the
      ETHTOOL_{G,S}RXFH command with only the cmd, flow_type and data
      fields.  It was then extended in 2.6.30 to support various additional
      commands.  These commands should have been defined to use a new
      structure, but it is too late to change that now.
      
      Since user-space may still be using the old structure definition
      for the ETHTOOL_{G,S}RXFH commands, and since they do not need the
      additional fields, only copy the originally defined fields to and
      from user-space.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Cc: stable@kernel.org
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bf988435
  4. 24 6月, 2010 1 次提交
  5. 11 6月, 2010 1 次提交
    • J
      net: deliver skbs on inactive slaves to exact matches · 597a264b
      John Fastabend 提交于
      Currently, the accelerated receive path for VLAN's will
      drop packets if the real device is an inactive slave and
      is not one of the special pkts tested for in
      skb_bond_should_drop().  This behavior is different then
      the non-accelerated path and for pkts over a bonded vlan.
      
      For example,
      
      vlanx -> bond0 -> ethx
      
      will be dropped in the vlan path and not delivered to any
      packet handlers at all.  However,
      
      bond0 -> vlanx -> ethx
      
      and
      
      bond0 -> ethx
      
      will be delivered to handlers that match the exact dev,
      because the VLAN path checks the real_dev which is not a
      slave and netif_recv_skb() doesn't drop frames but only
      delivers them to exact matches.
      
      This patch adds a sk_buff flag which is used for tagging
      skbs that would previously been dropped and allows the
      skb to continue to skb_netif_recv().  Here we add
      logic to check for the deliver_no_wcard flag and if it
      is set only deliver to handlers that match exactly.  This
      makes both paths above consistent and gives pkt handlers
      a way to identify skbs that come from inactive slaves.
      Without this patch in some configurations skbs will be
      delivered to handlers with exact matches and in others
      be dropped out right in the vlan path.
      
      I have tested the following 4 configurations in failover modes
      and load balancing modes.
      
      # bond0 -> ethx
      
      # vlanx -> bond0 -> ethx
      
      # bond0 -> vlanx -> ethx
      
      # bond0 -> ethx
                  |
        vlanx -> --
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      597a264b
  6. 05 6月, 2010 1 次提交
  7. 01 6月, 2010 1 次提交
  8. 31 5月, 2010 3 次提交
    • E
      netfilter: xtables: stackptr should be percpu · 7489aec8
      Eric Dumazet 提交于
      commit f3c5c1bf (netfilter: xtables: make ip_tables reentrant)
      introduced a performance regression, because stackptr array is shared by
      all cpus, adding cache line ping pongs. (16 cpus share a 64 bytes cache
      line)
      
      Fix this using alloc_percpu()
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Acked-By: NJan Engelhardt <jengelh@medozas.de>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      7489aec8
    • R
      rapidio: fix new kernel-doc warnings · 97ef6f74
      Randy Dunlap 提交于
      Fix a bunch of new rapidio kernel-doc warnings:
      
      Warning(include/linux/rio.h:123): No description found for parameter 'comp_tag'
      Warning(include/linux/rio.h:123): No description found for parameter 'phys_efptr'
      Warning(include/linux/rio.h:123): No description found for parameter 'em_efptr'
      Warning(include/linux/rio.h:123): No description found for parameter 'pwcback'
      Warning(include/linux/rio.h:247): No description found for parameter 'set_domain'
      Warning(include/linux/rio.h:247): No description found for parameter 'get_domain'
      Warning(drivers/rapidio/rio-scan.c:1133): No description found for parameter 'rdev'
      Warning(drivers/rapidio/rio-scan.c:1133): Excess function parameter 'port' description in 'rio_init_em'
      Warning(drivers/rapidio/rio.c:349): No description found for parameter 'rdev'
      Warning(drivers/rapidio/rio.c:349): Excess function parameter 'mport' description in 'rio_request_inb_pwrite'
      Warning(drivers/rapidio/rio.c:393): No description found for parameter 'port'
      Warning(drivers/rapidio/rio.c:393): No description found for parameter 'local'
      Warning(drivers/rapidio/rio.c:393): No description found for parameter 'destid'
      Warning(drivers/rapidio/rio.c:393): No description found for parameter 'hopcount'
      Warning(drivers/rapidio/rio.c:393): Excess function parameter 'rdev' description in 'rio_mport_get_physefb'
      Warning(drivers/rapidio/rio.c:845): Excess function parameter 'local' description in 'rio_std_route_clr_table'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Cc: Alexandre Bounine <alexandre.bounine@idt.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      97ef6f74
    • L
      Revert "cpusets: randomize node rotor used in cpuset_mem_spread_node()" · 35926ff5
      Linus Torvalds 提交于
      This reverts commit 0ac0c0d0, which
      caused cross-architecture build problems for all the wrong reasons.
      IA64 already added its own version of __node_random(), but the fact is,
      there is nothing architectural about the function, and the original
      commit was just badly done. Revert it, since no fix is forthcoming.
      Requested-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      35926ff5
  9. 30 5月, 2010 2 次提交
  10. 29 5月, 2010 1 次提交
  11. 28 5月, 2010 26 次提交
    • N
      fs: introduce new truncate sequence · 7bb46a67
      npiggin@suse.de 提交于
      Introduce a new truncate calling sequence into fs/mm subsystems. Rather than
      setattr > vmtruncate > truncate, have filesystems call their truncate sequence
      from ->setattr if filesystem specific operations are required. vmtruncate is
      deprecated, and truncate_pagecache and inode_newsize_ok helpers introduced
      previously should be used.
      
      simple_setattr is introduced for simple in-ram filesystems to implement
      the new truncate sequence. Eventually all filesystems should be converted
      to implement a setattr, and the default code in notify_change should go
      away.
      
      simple_setsize is also introduced to perform just the ATTR_SIZE portion
      of simple_setattr (ie. changing i_size and trimming pagecache).
      
      To implement the new truncate sequence:
      - filesystem specific manipulations (eg freeing blocks) must be done in
        the setattr method rather than ->truncate.
      - vmtruncate can not be used by core code to trim blocks past i_size in
        the event of write failure after allocation, so this must be performed
        in the fs code.
      - convert usage of helpers block_write_begin, nobh_write_begin,
        cont_write_begin, and *blockdev_direct_IO* to use _newtrunc postfixed
        variants. These avoid calling vmtruncate to trim blocks (see previous).
      - inode_setattr should not be used. generic_setattr is a new function
        to be used to copy simple attributes into the generic inode.
      - make use of the better opportunity to handle errors with the new sequence.
      
      Big problem with the previous calling sequence: the filesystem is not called
      until i_size has already changed.  This means it is not allowed to fail the
      call, and also it does not know what the previous i_size was. Also, generic
      code calling vmtruncate to truncate allocated blocks in case of error had
      no good way to return a meaningful error (or, for example, atomically handle
      block deallocation).
      
      Cc: Christoph Hellwig <hch@lst.de>
      Acked-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      7bb46a67
    • C
      rename the generic fsync implementations · 1b061d92
      Christoph Hellwig 提交于
      We don't name our generic fsync implementations very well currently.
      The no-op implementation for in-memory filesystems currently is called
      simple_sync_file which doesn't make too much sense to start with,
      the the generic one for simple filesystems is called simple_fsync
      which can lead to some confusion.
      
      This patch renames the generic file fsync method to generic_file_fsync
      to match the other generic_file_* routines it is supposed to be used
      with, and the no-op implementation to noop_fsync to make it obvious
      what to expect.  In addition add some documentation for both methods.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      1b061d92
    • C
      drop unused dentry argument to ->fsync · 7ea80859
      Christoph Hellwig 提交于
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      7ea80859
    • A
      get rid of the magic around f_count in aio · d7065da0
      Al Viro 提交于
      __aio_put_req() plays sick games with file refcount.  What
      it wants is fput() from atomic context; it's almost always
      done with f_count > 1, so they only have to deal with delayed
      work in rare cases when their reference happens to be the
      last one.  Current code decrements f_count and if it hasn't
      hit 0, everything is fine.  Otherwise it keeps a pointer
      to struct file (with zero f_count!) around and has delayed
      work do __fput() on it.
      
      Better way to do it: use atomic_long_add_unless( , -1, 1)
      instead of !atomic_long_dec_and_test().  IOW, decrement it
      only if it's not the last reference, leave refcount alone
      if it was.  And use normal fput() in delayed work.
      
      I've made that atomic_long_add_unless call a new helper -
      fput_atomic().  Drops a reference to file if it's safe to
      do in atomic (i.e. if that's not the last one), tells if
      it had been able to do that.  aio.c converted to it, __fput()
      use is gone.  req->ki_file *always* contributes to refcount
      now.  And __fput() became static.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      d7065da0
    • L
      cpuidle: make cpuidle_curr_driver static · 752138df
      Len Brown 提交于
      cpuidle_register_driver() sets cpuidle_curr_driver
      cpuidle_unregister_driver() clears cpuidle_curr_driver
      
      We should't expose cpuidle_curr_driver to
      potential modification except via these interfaces.
      So make it static and create cpuidle_get_driver() to observe it.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      752138df
    • R
      mfd: New AB8500 driver · 62579266
      Rabin Vincent 提交于
      Add a new driver to support the AB8500 Power Management chip, replacing
      the current AB4500.  The new driver replaces the old one, instead of an
      incremental modification, because this is a substantial overhaul
      including:
      
       - Split of the driver into -core and -spi portions, to allow another
         interface layer to be added
      
       - Addition of interrupt support
      
       - Switch to MFD core API for handling subdevices
      
       - Simplification of the APIs to remove a redundant block parameter
      
       - Rename of the APIs and macros from ab4500_* to ab8500_*
      
       - Rename of the files from ab4500* to ab8500*
      
       - Change of the driver name from ab4500 to ab8500
      Acked-by: NLinus Walleij <linus.walleij@stericsson.com>
      Acked-by: NSrinidhi Kasagar <srinidhi.kasagar@stericsson.com>
      Signed-off-by: NRabin Vincent <rabin.vincent@stericsson.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      62579266
    • M
      mfd: AB3100 register access change to abx500 API · fa661258
      Mattias Wallin 提交于
      The interface for the AB3100 is changed to make way for the
      ABX500 family of chips: AB3550, AB5500 and future ST-Ericsson
      Analog Baseband chips. The register access functions are moved
      out to a separate struct abx500_ops. In this way the interface
      is moved from the implementation and the sub functionality drivers
      can keep their interface intact when chip infrastructure and
      communication mechanisms changes. We also define the AB3550
      device IDs and the AB3550 platform data struct and convert
      the catenated 32bit event to an array of 3 x 8bits.
      Signed-off-by: NMattias Wallin <mattias.wallin@stericsson.com>
      Signed-off-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      fa661258
    • L
      mfd: Renamed ab3100.h to abx500.h · 812f9e9d
      Linus Walleij 提交于
      The goal here is to make way for a more general interface for the
      analog baseband chips ab3100 ab3550 ab550 and future chips.
      
      This patch have been divided into two parts since both changing name
      and content of a file is not recommended in git.
      Signed-off-by: NMattias Wallin <mattias.wallin@stericsson.com>
      Signed-off-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      812f9e9d
    • R
      mfd: Add Toshiba's TC35892 MFD core · b4ecd326
      Rabin Vincent 提交于
      The TC35892 I/O Expander provides 24 GPIOs, a keypad controller, timers,
      and a rotator wheel interface.  This patch adds the MFD core.
      Acked-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRabin Vincent <rabin.vincent@stericsson.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      b4ecd326
    • M
      mfd: Ensure WM831x charger interrupts are acknowledged when suspending · b03b4d7c
      Mark Brown 提交于
      The charger interrupts on the WM831x are unconditionally a wake source
      for the system. If the power driver is not able to monitor them (for
      example, due to the IRQ line not having been wired up on the system)
      then any charger interrupt will prevent the system suspending for any
      meaningful amount of time since nothing will ack them.
      
      Avoid this issue by manually acknowledging these interrupts when we
      suspend the WM831x core device if they are masked. If software is
      actually using the interrupts then they will be unmasked and this
      change will have no effect.
      Signed-off-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      b03b4d7c
    • T
      input: Touchscreen driver for TPS6507x · 75259966
      Todd Fischer 提交于
      Add touch screen input driver for TPS6507x family of multi-function
      chips.  Uses the TPS6507x MFD driver.  No interrupt support due to
      testing limitations of current hardware.
      Signed-off-by: NTodd Fischer <todd.fischer@ridgerun.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      75259966
    • T
      mfd: Add TPS6507x support · 31dd6a26
      Todd Fischer 提交于
      TPS6507x are multi function (PM, touchscreen) chipsets from TI.
      This commit also changes the corresponding regulator driver from being
      standalone to an MFD subdevice.
      Signed-off-by: NTodd Fischer <todd.fischer@ridgerun.com>
      Acked-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      31dd6a26
    • T
      mfd: Add tps6507x board data structure · 0bc20bba
      Todd Fischer 提交于
      Add mfd structure which refrences sub-driver initialization data. For example,
      for a giving hardware implementation, the voltage regulator sub-driver
      initialization data provides the mapping betten a voltage regulator and what
      the output voltage is being used for.
      Signed-off-by: NTodd Fischer <todd.fischer@ridgerun.com>
      Acked-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      0bc20bba
    • T
      mfd: Move TPS6507x register definition to header file. · d183fcc9
      Todd Fischer 提交于
      Other sub-drivers for the TPS6507x chip will need to use register
      definition so move it out of the source file and into a header file.
      Signed-off-by: NTodd Fischer <todd.fischer@ridgerun.com>
      Acked-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      d183fcc9
    • I
      mfd: Janz CMOD-IO PCI MODULbus Carrier Board support · bd358132
      Ira W. Snyder 提交于
      The Janz CMOD-IO PCI MODULbus carrier board is a PCI to MODULbus bridge,
      which may host many different types of MODULbus daughterboards, including
      CAN and GPIO controllers.
      Signed-off-by: NIra W. Snyder <iws@ovro.caltech.edu>
      Reviewed-by: NWolfgang Grandegger <wg@grandegger.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      bd358132
    • H
      mfd: Section cleanup of 88pm860x driver · 872c1b14
      Henrik Kretzschmar 提交于
      This patch fixes three section mismatches.
      
      WARNING: drivers/mfd/88pm860x.o(.text+0x12): Section mismatch in
      reference from the function pm860x_device_exit() to the function
      .devexit.text:device_irq_exit()
      The function pm860x_device_exit() references a function in an exit
      section.
      Often the function device_irq_exit() has valid usage outside the exit
      section
      and the fix is to remove the __devexit annotation of device_irq_exit.
      
      WARNING: drivers/mfd/88pm860x.o(.text+0xb0): Section mismatch in
      reference from the function pm860x_device_init() to the function
      .devinit.text:device_8606_init()
      The function pm860x_device_init() references
      the function __devinit device_8606_init().
      This is often because pm860x_device_init lacks a __devinit
      annotation or the annotation of device_8606_init is wrong.
      
      WARNING: drivers/mfd/88pm860x.o(.text+0xbe): Section mismatch in
      reference from the function pm860x_device_init() to the function
      .devinit.text:device_8607_init()
      The function pm860x_device_init() references
      the function __devinit device_8607_init().
      This is often because pm860x_device_init lacks a __devinit
      annotation or the annotation of device_8607_init is wrong.
      Signed-off-by: NHenrik Kretzschmar <henne@nachtwindheim.de>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      872c1b14
    • F
      mfd: Add support for the RDC321x southbridge · e090d506
      Florian Fainelli 提交于
      This patch adds a new MFD driver for the RDC321x southbridge. This southbridge
      is always present in the RDC321x System-on-a-Chip and provides access to some
      GPIOs as well as a watchdog. Access to these two functions is done using the
      southbridge PCI device configuration space.
      Signed-off-by: NFlorian Fainelli <florian@openwrt.org>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      e090d506
    • J
      hwmon: (asus_atk0110) Don't load if ACPI resources aren't enforced · 70dd6bea
      Jean Delvare 提交于
      When the user passes the kernel parameter acpi_enforce_resources=lax,
      the ACPI resources are no longer protected, so a native driver can
      make use of them. In that case, we do not want the asus_atk0110 to be
      loaded. Unfortunately, this driver loads automatically due to its
      MODULE_DEVICE_TABLE, so the user ends up with two drivers loaded for
      the same device - this is bad.
      
      So I suggest that we prevent the asus_atk0110 driver from loading if
      acpi_enforce_resources=lax.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Acked-by: NLuca Tettamanti <kronos.it@gmail.com>
      Cc: Len Brown <lenb@kernel.org>
      70dd6bea
    • D
      quota: Convert quota statistics to generic percpu_counter · f32764bd
      Dmitry Monakhov 提交于
      Generic per-cpu counter has some memory overhead but it is negligible for
      modern systems and embedded systems compile without quota support.  And code
      reuse is a good thing. This patch should fix complain from preemptive kernels
      which was introduced by dde95888.
      
      [Jan Kara: Fixed patch to work on 32-bit archs as well]
      Reported-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      f32764bd
    • L
      numa: introduce numa_mem_id()- effective local memory node id · 7aac7898
      Lee Schermerhorn 提交于
      Introduce numa_mem_id(), based on generic percpu variable infrastructure
      to track "nearest node with memory" for archs that support memoryless
      nodes.
      
      Define API in <linux/topology.h> when CONFIG_HAVE_MEMORYLESS_NODES
      defined, else stubs.  Architectures will define HAVE_MEMORYLESS_NODES
      if/when they support them.
      
      Archs can override definitions of:
      
      numa_mem_id() - returns node number of "local memory" node
      set_numa_mem() - initialize [this cpus'] per cpu variable 'numa_mem'
      cpu_to_mem()  - return numa_mem for specified cpu; may be used as lvalue
      
      Generic initialization of 'numa_mem' occurs in __build_all_zonelists().
      This will initialize the boot cpu at boot time, and all cpus on change of
      numa_zonelist_order, or when node or memory hot-plug requires zonelist
      rebuild.  Archs that support memoryless nodes will need to initialize
      'numa_mem' for secondary cpus as they're brought on-line.
      
      [akpm@linux-foundation.org: fix build]
      Signed-off-by: NLee Schermerhorn <lee.schermerhorn@hp.com>
      Signed-off-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Cc: Christoph Lameter <cl@linux-foundation.org>
      Cc: Nick Piggin <npiggin@suse.de>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Eric Whitney <eric.whitney@hp.com>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7aac7898
    • L
      numa: add generic percpu var numa_node_id() implementation · 72812019
      Lee Schermerhorn 提交于
      Rework the generic version of the numa_node_id() function to use the new
      generic percpu variable infrastructure.
      
      Guard the new implementation with a new config option:
      
              CONFIG_USE_PERCPU_NUMA_NODE_ID.
      
      Archs which support this new implemention will default this option to 'y'
      when NUMA is configured.  This config option could be removed if/when all
      archs switch over to the generic percpu implementation of numa_node_id().
      Arch support involves:
      
        1) converting any existing per cpu variable implementations to use
           this implementation.  x86_64 is an instance of such an arch.
        2) archs that don't use a per cpu variable for numa_node_id() will
           need to initialize the new per cpu variable "numa_node" as cpus
           are brought on-line.  ia64 is an example.
        3) Defining USE_PERCPU_NUMA_NODE_ID in arch dependent Kconfig--e.g.,
           when NUMA is configured.  This is required because I have
           retained the old implementation by default to allow archs to
           be modified incrementally, as desired.
      
      Subsequent patches will convert x86_64 and ia64 to use this implemenation.
      Signed-off-by: NLee Schermerhorn <lee.schermerhorn@hp.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Mel Gorman <mel@csn.ul.ie>
      Reviewed-by: NChristoph Lameter <cl@linux-foundation.org>
      Cc: Nick Piggin <npiggin@suse.de>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Eric Whitney <eric.whitney@hp.com>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      72812019
    • J
      vfs: introduce noop_llseek() · ae6afc3f
      jan Blunck 提交于
      This is an implementation of ->llseek useable for the rare special case
      when userspace expects the seek to succeed but the (device) file is
      actually not able to perform the seek.  In this case you use noop_llseek()
      instead of falling back to the default implementation of ->llseek.
      Signed-off-by: NJan Blunck <jblunck@suse.de>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      ae6afc3f
    • F
      asm-generic: remove ARCH_HAS_SG_CHAIN in scatterlist.h · 1ef04370
      FUJITA Tomonori 提交于
      There are more architectures that don't support ARCH_HAS_SG_CHAIN than
      those that support it.  This removes removes ARCH_HAS_SG_CHAIN in
      asm-generic/scatterlist.h and lets arhictectures to define it.
      
      It's clearer than defining ARCH_HAS_SG_CHAIN asm-generic/scatterlist.h and
      undefing it in arhictectures that don't support it.
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1ef04370
    • F
      asm-generic: add NEED_SG_DMA_LENGTH to define sg_dma_len() · 18e98307
      FUJITA Tomonori 提交于
      There are only two ways to define sg_dma_len(); use sg->dma_length or
      sg->length.  This patch introduces NEED_SG_DMA_LENGTH that enables
      architectures to choose sg->dma_length or sg->length.
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      18e98307
    • F
      asm-generic: remove ISA_DMA_THRESHOLD in scatterlist.h · 204f3a04
      FUJITA Tomonori 提交于
      This is the first half of the attempt to use asm-generic/scatterlist.h
      on every architecture.
      
      There are only two ways to define scatterlist structure. So it's easy
      to convert every architecture to use asm-generic/scatterlist.h.
      
      This patch:
      
      The trick for ISA_DMA_THRESHOLD in asm-generic/scatterlist.h doesn't work
      for powerpc.  This lets architectures defin ISA_DMA_THRESHOLD.
      
      Hopefully, we can remove ISA_DMA_THRESHOLD in the future; we can do better
      to decide if the bouncing is necessary or not.
      Signed-off-by: NFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Matt Turner <mattst88@gmail.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      204f3a04
    • J
      aio: fix the compat vectored operations · 9d85cba7
      Jeff Moyer 提交于
      The aio compat code was not converting the struct iovecs from 32bit to
      64bit pointers, causing either EINVAL to be returned from io_getevents, or
      EFAULT as the result of the I/O.  This patch passes a compat flag to
      io_submit to signal that pointer conversion is necessary for a given iocb
      array.
      
      A variant of this was tested by Michael Tokarev.  I have also updated the
      libaio test harness to exercise this code path with good success.
      Further, I grabbed a copy of ltp and ran the
      testcases/kernel/syscall/readv and writev tests there (compiled with -m32
      on my 64bit system).  All seems happy, but extra eyes on this would be
      welcome.
      
      [akpm@linux-foundation.org: coding-style fixes]
      [akpm@linux-foundation.org: fix CONFIG_COMPAT=n build]
      Signed-off-by: NJeff Moyer <jmoyer@redhat.com>
      Reported-by: NMichael Tokarev <mjt@tls.msk.ru>
      Cc: Zach Brown <zach.brown@oracle.com>
      Cc: <stable@kernel.org>		[2.6.35.1]
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9d85cba7