1. 10 8月, 2011 6 次提交
    • M
      crypto: sha1 - SSSE3 based SHA1 implementation for x86-64 · 66be8951
      Mathias Krause 提交于
      This is an assembler implementation of the SHA1 algorithm using the
      Supplemental SSE3 (SSSE3) instructions or, when available, the
      Advanced Vector Extensions (AVX).
      
      Testing with the tcrypt module shows the raw hash performance is up to
      2.3 times faster than the C implementation, using 8k data blocks on a
      Core 2 Duo T5500. For the smalest data set (16 byte) it is still 25%
      faster.
      
      Since this implementation uses SSE/YMM registers it cannot safely be
      used in every situation, e.g. while an IRQ interrupts a kernel thread.
      The implementation falls back to the generic SHA1 variant, if using
      the SSE/YMM registers is not possible.
      
      With this algorithm I was able to increase the throughput of a single
      IPsec link from 344 Mbit/s to 464 Mbit/s on a Core 2 Quad CPU using
      the SSSE3 variant -- a speedup of +34.8%.
      
      Saving and restoring SSE/YMM state might make the actual throughput
      fluctuate when there are FPU intensive userland applications running.
      For example, meassuring the performance using iperf2 directly on the
      machine under test gives wobbling numbers because iperf2 uses the FPU
      for each packet to check if the reporting interval has expired (in the
      above test I got min/max/avg: 402/484/464 MBit/s).
      
      Using this algorithm on a IPsec gateway gives much more reasonable and
      stable numbers, albeit not as high as in the directly connected case.
      Here is the result from an RFC 2544 test run with a EXFO Packet Blazer
      FTB-8510:
      
       frame size    sha1-generic     sha1-ssse3    delta
          64 byte     37.5 MBit/s    37.5 MBit/s     0.0%
         128 byte     56.3 MBit/s    62.5 MBit/s   +11.0%
         256 byte     87.5 MBit/s   100.0 MBit/s   +14.3%
         512 byte    131.3 MBit/s   150.0 MBit/s   +14.2%
        1024 byte    162.5 MBit/s   193.8 MBit/s   +19.3%
        1280 byte    175.0 MBit/s   212.5 MBit/s   +21.4%
        1420 byte    175.0 MBit/s   218.7 MBit/s   +25.0%
        1518 byte    150.0 MBit/s   181.2 MBit/s   +20.8%
      
      The throughput for the largest frame size is lower than for the
      previous size because the IP packets need to be fragmented in this
      case to make there way through the IPsec tunnel.
      Signed-off-by: NMathias Krause <minipli@googlemail.com>
      Cc: Maxim Locktyukhin <maxim.locktyukhin@intel.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      66be8951
    • M
      crypto: sha1 - export sha1_update for reuse · 7c390170
      Mathias Krause 提交于
      Export the update function as crypto_sha1_update() to not have the need
      to reimplement the same algorithm for each SHA-1 implementation. This
      way the generic SHA-1 implementation can be used as fallback for other
      implementations that fail to run under certain circumstances, like the
      need for an FPU context while executing in IRQ context.
      Signed-off-by: NMathias Krause <minipli@googlemail.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      7c390170
    • J
      crypto: picoxcell - fix possible invalid pointer dereference · b64dc04b
      Jamie Iles 提交于
      The completion callback will free the request so we must remove it from
      the completion list before calling the callback.
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NJamie Iles <jamie@jamieiles.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      b64dc04b
    • J
      crypto: picoxcell - support for device tree matching · 30343ef1
      Jamie Iles 提交于
      Allow the crypto engines to be matched from device tree bindings.
      
      Cc: devicetree-discuss@lists.ozlabs.org
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NJamie Iles <jamie@jamieiles.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      30343ef1
    • J
      crypto: picoxcell - add connection ID to the clock name · 4efae8c9
      Jamie Iles 提交于
      For using the device tree probing we use a connection ID for the
      clk_get() operation.
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NJamie Iles <jamie@jamieiles.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      4efae8c9
    • J
      crypto: picoxcell - convert to platform ID table · c3f4200f
      Jamie Iles 提交于
      Use a platform ID table and a single platform_driver.  It's neater and
      makes the device tree addition easier and more consistent.  Rename the
      match values to be inline with what they'll be in the device tree
      bindings.  There aren't any current in-tree users of the existing device
      names.
      
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NJamie Iles <jamie@jamieiles.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      c3f4200f
  2. 03 8月, 2011 1 次提交
    • J
      crypto: padlock-aes - Make module loading even quieter when hardware is missing · c39cc377
      Jonathan Nieder 提交于
      When loading aes via the module alias, a padlock module failing to
      load due to missing hardware is not particularly notable.  With
      v2.6.27-rc1~1107^2~14 (crypto: padlock - Make module loading quieter
      when hardware isn't available, 2008-07-03), the padlock-aes module
      suppresses the relevant messages when the "quiet" flag is in use; but
      better to suppress this particular message completely, since the
      administrator can already distinguish such errors by the absence of a
      message indicating initialization failing or succeeding.
      
      This avoids occasional messages in syslog of the form
      
      	padlock_aes: VIA PadLock not detected.
      Signed-off-by: NJonathan Nieder <jrnieder@gmail.com>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      c39cc377
  3. 02 8月, 2011 20 次提交
    • O
      oom: task->mm == NULL doesn't mean the memory was freed · c027a474
      Oleg Nesterov 提交于
      exit_mm() sets ->mm == NULL then it does mmput()->exit_mmap() which
      frees the memory.
      
      However select_bad_process() checks ->mm != NULL before TIF_MEMDIE,
      so it continues to kill other tasks even if we have the oom-killed
      task freeing its memory.
      
      Change select_bad_process() to check ->mm after TIF_MEMDIE, but skip
      the tasks which have already passed exit_notify() to ensure a zombie
      with TIF_MEMDIE set can't block oom-killer. Alternatively we could
      probably clear TIF_MEMDIE after exit_mmap().
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Reviewed-by: NKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c027a474
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6 · cfe22345
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/lrg/voltage-2.6: (23 commits)
        regulator: Improve WM831x DVS VSEL selection algorithm
        regulator: Bootstrap wm831x DVS VSEL value from ON VSEL if not already set
        regulator: Set up GPIO for WM831x VSEL before enabling VSEL mode
        regulator: Add EPEs to the MODULE_ALIAS() for wm831x-dcdc
        regulator: Fix WM831x DCDC DVS VSEL bootstrapping
        regulator: Fix WM831x regulator ID lookups for multiple WM831xs
        regulator: Fix argument format type errors in error prints
        regulator: Fix memory leak in set_machine_constraints() error paths
        regulator: Make core more chatty about some errors
        regulator: tps65910: Fix array access out of bounds bug
        regulator: tps65910: Add missing breaks in switch/case
        regulator: tps65910: Fix a memory leak in tps65910_probe error path
        regulator: TWL: Remove entry of RES_ID for 6030 macros
        ASoC: tlv320aic3x: Add correct hw registers to Line1 cross connect muxes
        regulator: Add basic per consumer debugfs
        regulator: Add rdev_crit() macro
        regulator: Refactor supply implementation to work as regular consumers
        regulator: Include the device name in the microamps_requested_ file
        regulator: Increase the limit on sysfs file names
        regulator: Properly register dummy regulator driver
        ...
      cfe22345
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 60ad4466
      Linus Torvalds 提交于
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (60 commits)
        ext4: prevent memory leaks from ext4_mb_init_backend() on error path
        ext4: use EXT4_BAD_INO for buddy cache to avoid colliding with valid inode #
        ext4: use ext4_msg() instead of printk in mballoc
        ext4: use ext4_kvzalloc()/ext4_kvmalloc() for s_group_desc and s_group_info
        ext4: introduce ext4_kvmalloc(), ext4_kzalloc(), and ext4_kvfree()
        ext4: use the correct error exit path in ext4_init_inode_table()
        ext4: add missing kfree() on error return path in add_new_gdb()
        ext4: change umode_t in tracepoint headers to be an explicit __u16
        ext4: fix races in ext4_sync_parent()
        ext4: Fix overflow caused by missing cast in ext4_fallocate()
        ext4: add action of moving index in ext4_ext_rm_idx for Punch Hole
        ext4: simplify parameters of reserve_backup_gdb()
        ext4: simplify parameters of add_new_gdb()
        ext4: remove lock_buffer in bclean() and setup_new_group_blocks()
        ext4: simplify journal handling in setup_new_group_blocks()
        ext4: let setup_new_group_blocks() set multiple bits at a time
        ext4: fix a typo in ext4_group_extend()
        ext4: let ext4_group_add_blocks() handle 0 blocks quickly
        ext4: let ext4_group_add_blocks() return an error code
        ext4: rename ext4_add_groupblocks() to ext4_group_add_blocks()
        ...
      
      Fix up conflict in fs/ext4/inode.c: commit aacfc19c ("fs: simplify
      the blockdev_direct_IO prototype") had changed the ext4_ind_direct_IO()
      function for the new simplified calling convention, while commit
      dae1e52c ("ext4: move ext4_ind_* functions from inode.c to
      indirect.c") moved the function to another file.
      60ad4466
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · 1b8e9499
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
        xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set
        VFS: Reorganise shrink_dcache_for_umount_subtree() after demise of dcache_lock
        VFS: Remove dentry->d_lock locking from shrink_dcache_for_umount_subtree()
        VFS: Remove detached-dentry counter from shrink_dcache_for_umount_subtree()
        switch posix_acl_chmod() to umode_t
        switch posix_acl_from_mode() to umode_t
        switch posix_acl_equiv_mode() to umode_t *
        switch posix_acl_create() to umode_t *
        block: initialise bd_super in bdget()
        vfs: avoid call to inode_lru_list_del() if possible
        vfs: avoid taking inode_hash_lock on pipes and sockets
        vfs: conditionally call inode_wb_list_del()
        VFS: Fix automount for negative autofs dentries
        Btrfs: load the key from the dir item in readdir into a fake dentry
        devtmpfs: missing initialialization in never-hit case
        hppfs: missing include
      1b8e9499
    • L
      Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma · 12ff47e7
      Linus Torvalds 提交于
      * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (37 commits)
        Improve slave/cyclic DMA engine documentation
        dmaengine: pl08x: handle the rest of enums in pl08x_width
        DMA: PL08x: cleanup selection of burst size
        DMA: PL08x: avoid recalculating cctl at each prepare
        DMA: PL08x: cleanup selection of buswidth
        DMA: PL08x: constify plchan->cd and plat->slave_channels
        DMA: PL08x: separately store source/destination cctl
        DMA: PL08x: separately store source/destination slave address
        DMA: PL08x: clean up LLI debugging
        DMA: PL08x: select LLI bus only once per LLI setup
        DMA: PL08x: remove unused constants
        ARM: mxs-dma: reset after disable channel
        dma: intel_mid_dma: remove redundant pci_set_drvdata calls
        dma: mxs-dma: fix unterminated platform_device_id table
        dmaengine: pl330: make platform data optional
        dmaengine: imx-sdma: return proper error if kzalloc fails
        pch_dma: Fix CTL register access issue
        dmaengine: mxs-dma: skip request_irq for NO_IRQ
        dmaengine/coh901318: fix slave submission semantics
        dmaengine/ste_dma40: allow memory buswidth/burst to be configured
        ...
      
      Fix trivial whitespace conflict in drivers/dma/mv_xor.c
      12ff47e7
    • L
    • L
      Merge branch 'pstore-efi' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 · a2d77302
      Linus Torvalds 提交于
      * 'pstore-efi' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
        efivars: Introduce PSTORE_EFI_ATTRIBUTES
        efivars: Use string functions in pstore_write
        efivars: introduce utf16_strncmp
        efivars: String functions
        efi: Add support for using efivars as a pstore backend
        pstore: Allow the user to explicitly choose a backend
        pstore: Make "part" unsigned
        pstore: Add extra context for writes and erases
        pstore: Extend API for more flexibility in new backends
      a2d77302
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb · 72f9adfd
      Linus Torvalds 提交于
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:
        kdb,kgdb: Allow arbitrary kgdb magic knock sequences
        kdb: Remove all references to DOING_KGDB2
        kdb,kgdb: Implement switch and pass buffer from kdb -> gdb
        kdb: cleanup unused variables missed in the original kdb merge
      72f9adfd
    • Y
      ext4: prevent memory leaks from ext4_mb_init_backend() on error path · 79a77c5a
      Yu Jian 提交于
      In ext4_mb_init(), if the s_locality_group allocation fails it will
      currently cause the allocations made in ext4_mb_init_backend() to
      be leaked.  Moving the ext4_mb_init_backend() allocation after the
      s_locality_group allocation avoids that problem.
      Signed-off-by: NYu Jian <yujian@whamcloud.com>
      Signed-off-by: NAndreas Dilger <adilger@whamcloud.com>
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      79a77c5a
    • Y
    • T
      ext4: use ext4_msg() instead of printk in mballoc · 9d8b9ec4
      Theodore Ts'o 提交于
      Signed-off-by: N"Theodore Ts'o" <tytso@mit.edu>
      9d8b9ec4
    • J
      kdb,kgdb: Allow arbitrary kgdb magic knock sequences · 37f86b46
      Jason Wessel 提交于
      The first packet that gdb sends when the kernel is in kdb mode seems
      to change with every release of gdb.  Instead of continuing to add
      many different gdb packets, change kdb to automatically look for any
      thing that looks like a gdb packet.
      
      Example 1 cold start test:
      echo g > /proc/sysrq-trigger
      $D#44+
      
      Example 2 cold start test:
      echo g > /proc/sysrq-trigger
      $3#33
      
      The second one should re-enter kdb's shell right away and is purely a
      test.
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      37f86b46
    • J
      kdb: Remove all references to DOING_KGDB2 · d613d828
      Jason Wessel 提交于
      The DOING_KGDB2 was originally a state variable for one of the two
      ways to automatically transition from kdb to kgdb.  Purge all these
      variables and just use one single state for the transition.
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      d613d828
    • J
      kdb,kgdb: Implement switch and pass buffer from kdb -> gdb · f679c498
      Jason Wessel 提交于
      When switching from kdb mode to kgdb mode packets were getting lost
      depending on the size of the fifo queue of the serial chip.  When gdb
      initially connects if it is in kdb mode it should entirely send any
      character buffer over to the gdbstub when switching connections.
      
      Previously kdb was zero'ing out the character buffer and this could
      lead to gdb failing to connect at all, or a lengthy pause could occur
      on the initial connect.
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      f679c498
    • J
      kdb: cleanup unused variables missed in the original kdb merge · 3bdb65ec
      Jason Wessel 提交于
      The BTARGS and BTSYMARG variables do not have any function in the
      mainline version of kdb.
      Reported-by: NTim Bird <tim.bird@am.sony.com>
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      3bdb65ec
    • L
      Merge branch 'for-next' into for-linus · 424c3d4a
      Liam Girdwood 提交于
      424c3d4a
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 · 5f66d2b5
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
        CIFS: Cleanup demupltiplex thread exiting code
        CIFS: Move mid search to a separate function
        CIFS: Move RFC1002 check to a separate function
        CIFS: Simplify socket reading in demultiplex thread
        CIFS: Move buffer allocation to a separate function
        cifs: remove unneeded variable initialization in cifs_reconnect_tcon
        cifs: simplify refcounting for oplock breaks
        cifs: fix compiler warning in CIFSSMBQAllEAs
        cifs: fix name parsing in CIFSSMBQAllEAs
        cifs: don't start signing too early
        cifs: trivial: goto out here is unnecessary
        cifs: advertise the right receive buffer size to the server
      5f66d2b5
    • L
      Merge branch 'gpio/next' of git://git.secretlab.ca/git/linux-2.6 · 4a2d732f
      Linus Torvalds 提交于
      * 'gpio/next' of git://git.secretlab.ca/git/linux-2.6:
        gpio_msm: Move Qualcomm MSM v2 gpio driver into drivers
        gpio_msm: Move Qualcomm v6 MSM driver into drivers
        msm: gpio: Fold register defs into C file
        msm: gpiomux: Move public API to public header
        msm: gpio: Remove ifdefs on gpio chip registers
        msm: gpio: Remove chip-specific register definitions
        msm: Remove chip-ifdefs for GPIO io mappings
        msm: gpio: Remove unsupported devices
        gpio: ab8500: fix MODULE_ALIAS for ab8500
        of/gpio: export of_gpio_simple_xlate
      4a2d732f
    • L
      Merge branch 'for-3.1-rc1' of git://gitorious.org/linux-omap-dss2/linux · 965e32b1
      Linus Torvalds 提交于
      * 'for-3.1-rc1' of git://gitorious.org/linux-omap-dss2/linux: (31 commits)
        OMAP: DSS2: HDMI: fix hdmi clock name
        HACK: OMAP: DSS2: clk hack for OMAP2/3
        OMAP: DSS2: DSS: Fix context save/restore
        OMAP: DSS2: DISPC: Fix context save/restore
        OMAP: DSS2: Remove ctx loss count from dss.c
        OMAP: DSS2: Remove unused code from display.c
        OMAP: DSS2: DISPC: remove finegrained clk enables/disables
        OMAP: DSS2: Remove unused opt_clock_available
        OMAP: DSS2: Use PM runtime & HWMOD support
        OMAP: DSS2: Remove CONFIG_OMAP2_DSS_SLEEP_BEFORE_RESET
        OMAP: DSS2: Remove core_dump_clocks
        OMAP: DSS2: DPI: remove unneeded SYSCK enable/disable
        OMAP: DSS2: Use omap_pm_get_dev_context_loss_count to get ctx loss count
        OMAP: DSS2: rewrite use of context_loss_count
        OMAP: DSS2: Remove clk optimization at dss init
        OMAP: DSS2: Fix init and unit sequence
        OMAP: DSS2: Clean up probe for DSS & DSI
        OMAP: DSS2: Handle dpll4_m4_ck in dss_get/put_clocks
        OMAP: DSS2: Fix FIFO threshold and burst size for OMAP4
        OMAP: DSS2: DSI: sync when disabling a display
        ...
      965e32b1
    • L
      Merge branch 'sh-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-3.x · e10b87d2
      Linus Torvalds 提交于
      * 'sh-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-3.x: (39 commits)
        SH: static should be at beginning of declaration
        sh: move CLKDEV_xxx_ID macro to sh_clk.h
        sh: clock-shx3: add CLKDEV_ICK_ID for cleanup
        sh: clock-sh7786: add CLKDEV_ICK_ID for cleanup
        sh: clock-sh7785: add CLKDEV_ICK_ID for cleanup
        sh: clock-sh7757: add CLKDEV_ICK_ID for cleanup
        sh: clock-sh7366: add CLKDEV_ICK_ID for cleanup
        sh: clock-sh7343: add CLKDEV_ICK_ID for cleanup
        sh: clock-sh7722: add CLKDEV_ICK_ID for cleanup
        sh: clock-sh7724: add CLKDEV_ICK_ID for cleanup
        sh: clock-sh7366: modify I2C clock settings
        sh: clock-sh7343: modify I2C clock settings
        sh: clock-sh7723: modify I2C clock settings
        sh: clock-sh7722: modify I2C clock settings
        sh: clock-sh7724: modify I2C clock settings
        serial: sh-sci: Fix up pretty name printing for port IRQs.
        serial: sh-sci: Kill off per-port enable/disable callbacks.
        serial: sh-sci: Add missing module description/author bits.
        serial: sh-sci: Regtype probing doesn't need to be fatal.
        sh: Tidy up pre-clkdev clk_get() error handling.
        ...
      e10b87d2
  4. 01 8月, 2011 13 次提交