1. 11 1月, 2008 7 次提交
    • H
      [CRYPTO] skcipher: Added geniv field · 23508e11
      Herbert Xu 提交于
      This patch introduces the geniv field which indicates the default IV
      generator for each algorithm.  It should point to a string that is not
      freed as long as the algorithm is registered.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      23508e11
    • H
      [CRYPTO] skcipher: Add givcrypt operations and givcipher type · 61da88e2
      Herbert Xu 提交于
      Different block cipher modes have different requirements for intialisation
      vectors.  For example, CBC can use a simple randomly generated IV while
      modes such as CTR must use an IV generation mechanisms that give a stronger
      guarantee on the lack of collisions.  Furthermore, disk encryption modes
      have their own IV generation algorithms.
      
      Up until now IV generation has been left to the users of the symmetric
      key cipher API.  This is inconvenient as the number of block cipher modes
      increase because the user needs to be aware of which mode is supposed to
      be paired with which IV generation algorithm.
      
      Therefore it makes sense to integrate the IV generation into the crypto
      API.  This patch takes the first step in that direction by creating two
      new ablkcipher operations, givencrypt and givdecrypt that generates an
      IV before performing the actual encryption or decryption.
      
      The operations are currently not exposed to the user.  That will be done
      once the underlying functionality has actually been implemented.
      
      It also creates the underlying givcipher type.  Algorithms that directly
      generate IVs would use it instead of ablkcipher.  All other algorithms
      (including all existing ones) would generate a givcipher algorithm upon
      registration.  This givcipher algorithm will be constructed from the geniv
      string that's stored in every algorithm.  That string will locate a template
      which is instantiated by the blkcipher/ablkcipher algorithm in question to
      give a givcipher algorithm.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      61da88e2
    • H
      [CRYPTO] skcipher: Add crypto_grab_skcipher interface · 378f4f51
      Herbert Xu 提交于
      Note: From now on the collective of ablkcipher/blkcipher/givcipher will
      be known as skcipher, i.e., symmetric key cipher.  The name blkcipher has
      always been much of a misnomer since it supports stream ciphers too.
      
      This patch adds the function crypto_grab_skcipher as a new way of getting
      an ablkcipher spawn.  The problem is that previously we did this in two
      steps, first getting the algorithm and then calling crypto_init_spawn.
      
      This meant that each spawn user had to be aware of what type and mask to
      use for these two steps.  This is difficult and also presents a problem
      when the type/mask changes as they're about to be for IV generators.
      
      The new interface does both steps together just like crypto_alloc_ablkcipher.
      
      As a side-effect this also allows us to be stronger on type enforcement
      for spawns.  For now this is only done for ablkcipher but it's trivial
      to extend for other types.
      
      This patch also moves the type/mask logic for skcipher into the helpers
      crypto_skcipher_type and crypto_skcipher_mask.
      
      Finally this patch introduces the function crypto_require_sync to determine
      whether the user is specifically requesting a sync algorithm.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      378f4f51
    • H
      [CRYPTO] api: Sanitise mask when allocating ablkcipher/hash · 551a09a7
      Herbert Xu 提交于
      When allocating ablkcipher/hash objects, we use a mask that's wider than
      the usual type mask.  This patch sanitises the mask supplied by the user
      so we don't end up using a narrower mask which may lead to unintended
      results.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      551a09a7
    • H
      [CRYPTO] aead: Make authsize a run-time parameter · 7ba683a6
      Herbert Xu 提交于
      As it is authsize is an algorithm paramter which cannot be changed at
      run-time.  This is inconvenient because hardware that implements such
      algorithms would have to register each authsize that they support
      separately.
      
      Since authsize is a property common to all AEAD algorithms, we can add
      a function setauthsize that sets it at run-time, just like setkey.
      
      This patch does exactly that and also changes authenc so that authsize
      is no longer a parameter of its template.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      7ba683a6
    • P
      [HWRNG]: move status polling loop to data_present callbacks · 984e976f
      Patrick McHardy 提交于
      Handle waiting for new random within the drivers themselves, this allows to
      use better suited timeouts for the individual rngs.
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      Acked-by: NMichael Buesch <mb@bu3sch.de>
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      984e976f
    • H
      [CRYPTO] ablkcipher: Add distinct ABLKCIPHER type · 332f8840
      Herbert Xu 提交于
      Up until now we have ablkcipher algorithms have been identified as
      type BLKCIPHER with the ASYNC bit set.  This is suboptimal because
      ablkcipher refers to two things.  On the one hand it refers to the
      top-level ablkcipher interface with requests.  On the other hand it
      refers to and algorithm type underneath.
      
      As it is you cannot request a synchronous block cipher algorithm
      with the ablkcipher interface on top.  This is a problem because
      we want to be able to eventually phase out the blkcipher top-level
      interface.
      
      This patch fixes this by making ABLKCIPHER its own type, just as
      we have distinct types for HASH and DIGEST.  The type it associated
      with the algorithm implementation only.
      
      Which top-level interface is used for synchronous block ciphers is
      then determined by the mask that's used.  If it's a specific mask
      then the old blkcipher interface is given, otherwise we go with the
      new ablkcipher interface.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      332f8840
  2. 17 11月, 2007 1 次提交
  3. 16 11月, 2007 1 次提交
  4. 15 11月, 2007 8 次提交
    • J
      Fix 64KB blocksize in ext3 directories · 7c06a8dc
      Jan Kara 提交于
      With 64KB blocksize, a directory entry can have size 64KB which does not
      fit into 16 bits we have for entry lenght.  So we store 0xffff instead and
      convert value when read from / written to disk.  The patch also converts
      some places to use ext3_next_entry() when we are changing them anyway.
      
      [akpm@linux-foundation.org: coding-style cleanups]
      Signed-off-by: NJan Kara <jack@suse.cz>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7c06a8dc
    • E
      pidns: Place under CONFIG_EXPERIMENTAL · 57d5f66b
      Eric W. Biederman 提交于
      This is my trivial patch to swat innumerable little bugs with a single
      blow.
      
      After some intensive review (my apologies for not having gotten to this
      sooner) what we have looks like a good base to build on with the current
      pid namespace code but it is not complete, and it is still much to simple
      to find issues where the kernel does the wrong thing outside of the initial
      pid namespace.
      
      Until the dust settles and we are certain we have the ABI and the
      implementation is as correct as humanly possible let's keep process ID
      namespaces behind CONFIG_EXPERIMENTAL.
      
      Allowing us the option of fixing any ABI or other bugs we find as long as
      they are minor.
      
      Allowing users of the kernel to avoid those bugs simply by ensuring their
      kernel does not have support for multiple pid namespaces.
      
      [akpm@linux-foundation.org: coding-style cleanups]
      Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
      Cc: Cedric Le Goater <clg@fr.ibm.com>
      Cc: Adrian Bunk <bunk@kernel.org>
      Cc: Jeremy Fitzhardinge <jeremy@goop.org>
      Cc: Kir Kolyshkin <kir@swsoft.com>
      Cc: Kirill Korotaev <dev@sw.ru>
      Cc: Pavel Emelyanov <xemul@openvz.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      57d5f66b
    • B
      rtc: fall back to requesting only the ports we actually use · 9626f1f1
      Bjorn Helgaas 提交于
      Firmware like PNPBIOS or ACPI can report the address space consumed by the
      RTC.  The actual space consumed may be less than the size (RTC_IO_EXTENT)
      assumed by the RTC driver.
      
      The PNP core doesn't request resources yet, but I'd like to make it do so.
      If/when it does, the RTC_IO_EXTENT request may fail, which prevents the RTC
      driver from loading.
      
      Since we only use the RTC index and data registers at RTC_PORT(0) and
      RTC_PORT(1), we can fall back to requesting just enough space for those.
      
      If the PNP core requests resources, this results in typical I/O port usage
      like this:
      
          0070-0073 : 00:06		<-- PNP device 00:06 responds to 70-73
            0070-0071 : rtc		<-- RTC driver uses only 70-71
      
      instead of the current:
      
          0070-0077 : rtc		<-- RTC_IO_EXTENT == 8
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9626f1f1
    • S
      I/OAT: Add support for version 2 of ioatdma device · 7bb67c14
      Shannon Nelson 提交于
      Add support for version 2 of the ioatdma device.  This device handles
      the descriptor chain and DCA services slightly differently:
       - Instead of moving the dma descriptors between a busy and an idle chain,
         this new version uses a single circular chain so that we don't have
         rewrite the next_descriptor pointers as we add new requests, and the
         device doesn't need to re-read the last descriptor.
       - The new device has the DCA tags defined internally instead of needing
         them defined statically.
      Signed-off-by: NShannon Nelson <shannon.nelson@intel.com>
      Cc: "Williams, Dan J" <dan.j.williams@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7bb67c14
    • A
      revert "Task Control Groups: example CPU accounting subsystem" · cfb52856
      Andrew Morton 提交于
      Revert 62d0df64.
      
      This was originally intended as a simple initial example of how to create a
      control groups subsystem; it wasn't intended for mainline, but I didn't make
      this clear enough to Andrew.
      
      The CFS cgroup subsystem now has better functionality for the per-cgroup usage
      accounting (based directly on CFS stats) than the "usage" status file in this
      patch, and the "load" status file is rather simplistic - although having a
      per-cgroup load average report would be a useful feature, I don't believe this
      patch actually provides it.  If it gets into the final 2.6.24 we'd probably
      have to support this interface for ever.
      
      Cc: Paul Menage <menage@google.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cfb52856
    • K
      hugetlb: fix i_blocks accounting · 45c682a6
      Ken Chen 提交于
      For administrative purpose, we want to query actual block usage for
      hugetlbfs file via fstat.  Currently, hugetlbfs always return 0.  Fix that
      up since kernel already has all the information to track it properly.
      Signed-off-by: NKen Chen <kenchen@google.com>
      Acked-by: NAdam Litke <agl@us.ibm.com>
      Cc: Badari Pulavarty <pbadari@us.ibm.com>
      Cc: David Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      45c682a6
    • A
      hugetlb: allow bulk updating in hugetlb_*_quota() · 9a119c05
      Adam Litke 提交于
      Add a second parameter 'delta' to hugetlb_get_quota and hugetlb_put_quota to
      allow bulk updating of the sbinfo->free_blocks counter.  This will be used by
      the next patch in the series.
      Signed-off-by: NAdam Litke <agl@us.ibm.com>
      Cc: Ken Chen <kenchen@google.com>
      Cc: Andy Whitcroft <apw@shadowen.org>
      Cc: Dave Hansen <haveblue@us.ibm.com>
      Cc: David Gibson <hermes@gibson.dropbear.id.au>
      Cc: William Lee Irwin III <wli@holomorphy.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9a119c05
    • A
      hugetlb: follow_hugetlb_page() for write access · 5b23dbe8
      Adam Litke 提交于
      When calling get_user_pages(), a write flag is passed in by the caller to
      indicate if write access is required on the faulted-in pages.  Currently,
      follow_hugetlb_page() ignores this flag and always faults pages for
      read-only access.  This can cause data corruption because a device driver
      that calls get_user_pages() with write set will not expect COW faults to
      occur on the returned pages.
      
      This patch passes the write flag down to follow_hugetlb_page() and makes
      sure hugetlb_fault() is called with the right write_access parameter.
      
      [ezk@cs.sunysb.edu: build fix]
      Signed-off-by: NAdam Litke <agl@us.ibm.com>
      Reviewed-by: NKen Chen <kenchen@google.com>
      Cc: David Gibson <hermes@gibson.dropbear.id.au>
      Cc: William Lee Irwin III <wli@holomorphy.com>
      Cc: Badari Pulavarty <pbadari@us.ibm.com>
      Signed-off-by: NErez Zadok <ezk@cs.sunysb.edu>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5b23dbe8
  5. 13 11月, 2007 2 次提交
  6. 12 11月, 2007 2 次提交
    • R
      virtio: Force use of power-of-two for descriptor ring sizes · 42b36cc0
      Rusty Russell 提交于
      The virtio descriptor rings of size N-1 were nicely set up to be
      aligned to an N-byte boundary.  But as Anthony Liguori points out, the
      free-running indices used by virtio require that the sizes be a power
      of 2, otherwise we get problems on wrap (demonstrated with lguest).
      
      So we replace the clever "2^n-1" scheme with a simple "align to page
      boundary" scheme: this means that all virtio rings take at least two
      pages, but it's safer than guessing cache alignment.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      42b36cc0
    • A
      virtio: fix vring_init for 64 bits · 44332f71
      Anthony Liguori 提交于
      This patch fixes a typo in vring_init().  This happens to work today in lguest
      because the sizeof(struct vring_desc) is 16 and struct vring contains 3
      pointers and an unsigned int so on 32-bit
      sizeof(struct vring_desc) == sizeof(struct vring).  However, this is no longer
      true on 64-bit where the bug is exposed.
      Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      44332f71
  7. 11 11月, 2007 1 次提交
    • C
      [NET]: Fix skb_truesize_check() assertion · 78608ba0
      Chuck Lever 提交于
      The intent of the assertion in skb_truesize_check() is to check
      for skb->truesize being decremented too much by other code,
      resulting in a wraparound below zero.
      
      The type of the right side of the comparison causes the compiler to
      promote the left side to an unsigned type, despite the presence of an
      explicit type cast.  This defeats the check for negativity.
      
      Ensure both sides of the comparison are a signed type to prevent the
      implicit type conversion.
      Signed-off-by: NChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      78608ba0
  8. 10 11月, 2007 6 次提交
  9. 09 11月, 2007 1 次提交
  10. 08 11月, 2007 2 次提交
  11. 07 11月, 2007 5 次提交
  12. 06 11月, 2007 4 次提交