1. 23 Mar, 2007 14 commits
  2. 22 Mar, 2007 18 commits
  3. 20 Mar, 2007 8 commits
    • Sebastian Siewior's avatar
      [CRYPTO] tcrypt: Fix error checking for comp allocation · 7bc301e9
      Sebastian Siewior authored
      This patch fixes loading the tcrypt module while deflate isn't available
      at all (isn't build).
      Signed-off-by: default avatarSebastian Siewior <linux-crypto@ml.breakpoint.cc>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      7bc301e9
    • Johannes Schlumberger's avatar
      [CRYPTO] doc: Fix typo in hash example · 58e40308
      Johannes Schlumberger authored
      there is a tiny bug in Documentation/crypto/api-intro.txt.
      The file has the following example code:
      
      struct scatterlist sg[2];
      [...]
      if (crypto_hash_digest(&desc, &sg, 2, result))
      
      which does not match the declaration of crypto_hash_digest() in
      include/linux/crypto.h.
      
      (static inline int crypto_hash_digest(struct hash_desc *desc,
      	struct scatterlist *sg, unsigned int nbytes, u8 *out)
      
      The code in the example passes the address of a pointer (an array actually) as
      the second argument, while the function expects the pointer itself.
      
      I have attached a patch to fix this.
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      58e40308
    • J. Bruce Fields's avatar
      [CRYPTO] api: scatterwalk_copychunks() fails to advance through scatterlist · f70ee5ec
      J. Bruce Fields authored
      In the loop in scatterwalk_copychunks(), if walk->offset is zero,
      then scatterwalk_pagedone rounds that up to the nearest page boundary:
      
      		walk->offset += PAGE_SIZE - 1;
      		walk->offset &= PAGE_MASK;
      
      which is a no-op in this case, so we don't advance to the next element
      of the scatterlist array:
      
      		if (walk->offset >= walk->sg->offset + walk->sg->length)
      			scatterwalk_start(walk, sg_next(walk->sg));
      
      and we end up copying the same data twice.
      
      It appears that other callers of scatterwalk_{page}done first advance
      walk->offset, so I believe that's the correct thing to do here.
      
      This caused a bug in NFS when run with krb5p security, which would
      cause some writes to fail with permissions errors--for example, writes
      of less than 8 bytes (the des blocksize) at the start of a file.
      
      A git-bisect shows the bug was originally introduced by
      5c64097a, first in 2.6.19-rc1.
      Signed-off-by: default avatar"J. Bruce Fields" <bfields@citi.umich.edu>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      f70ee5ec
    • Bernhard Walle's avatar
      [IA64] Fix wrong /proc/iomem on SGI Altix · 58a69c36
      Bernhard Walle authored
      In sn_io_slot_fixup(), the parent is re-set from the bus to
      io(port|mem)_resource because the address is changed in a way that it's not
      child of the bus any more.
      
      However, only the root is set but not the parent/child/sibling relationship in
      the resource tree which causes 'cat /proc/iomem' to stop after this memory
      area. Depding on the poition in the tree the iomem may be nearly completely
      empty.
      Signed-off-by: default avatarBernhard Walle <bwalle@suse.de>
      Acked-by: default avatarJohn Keller <jpk@sgi.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      58a69c36
    • John Keller's avatar
      [IA64] Altix: ioremap vga_console_iobase · 0bdfc190
      John Keller authored
      When booting an SN system without specifing a console
      (i.e., no "console=" on boot line), the system will hang during
      boot at the point where /sbin/init is run.
      
      The problem is that vga_console_iobase is not converted to a
      virtual address before storing in io_space[0].mmio_base.
      The conversion was happening in sn_scan_pcdp(), but not in
      setup_vga_console().
      Signed-off-by: default avatarJohn Keller <jpk@sgi.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      0bdfc190
    • Jay Lan's avatar
      [IA64] Fix typo/thinko in crash.c · 60b548df
      Jay Lan authored
      Clearly should be checking for "val == DIE_INIT_SLAVE_ENTER".
      Signed-off-by: default avatarJay Lan <jlan@sgi.com>
      Acked-by: default avatarSimon Horman <horms@verge.net.au>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      60b548df
    • Jack Steiner's avatar
      [IA64] Fix get_model_name() for mixed cpu type systems · c5e83e3f
      Jack Steiner authored
      If a system consists of mixed processor types, kmalloc()
      can be called before the per-cpu data page is initialized.
      If the slab contains sufficient memory, then kmalloc() works
      ok. However, if the slabs are empty, slab calls the memory
      allocator. This requires per-cpu data (NODE_DATA()) & the
      cpu dies.
      
      Also noted by Russ Anderson who had a very similar patch.
      Signed-off-by: default avatarJack Steiner <steiner@sgi.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      c5e83e3f
    • Zou Nan hai's avatar
      [IA64] min_low_pfn and max_low_pfn calculation fix · a3f5c338
      Zou Nan hai authored
      We have seen bad_pte_print when testing crashdump on an SN machine in
      recent 2.6.20 kernel.  There are tons of bad pte print (pfn < max_low_pfn)
      reports when the crash kernel boots up, all those reported bad pages
      are inside initmem range; That is because if the crash kernel code and
      data happens to be at the beginning of the 1st node. build_node_maps in
      discontig.c will bypass reserved regions with filter_rsvd_memory. Since
      min_low_pfn is calculated in build_node_map, so in this case, min_low_pfn
      will be greater than kernel code and data.
      
      Because pages inside initmem are freed and reused later, we saw
      pfn_valid check fail on those pages.
      
      I think this theoretically happen on a normal kernel. When I check
      min_low_pfn and max_low_pfn calculation in contig.c and discontig.c.
      I found more issues than this.
      
      1. min_low_pfn and max_low_pfn calculation is inconsistent between
      contig.c and discontig.c,
      min_low_pfn is calculated as the first page number of boot memmap in
      contig.c (Why? Though this may work at the most of the time, I don't
      think it is the right logic). It is calculated as the lowest physical
      memory page number bypass reserved regions in discontig.c.
      max_low_pfn is calculated include reserved regions in contig.c. It is
      calculated exclude reserved regions in discontig.c.
      
      2. If kernel code and data region is happen to be at the begin or the
      end of physical memory, when min_low_pfn and max_low_pfn calculation is
      bypassed kernel code and data, pages in initmem will report bad.
      
      3. initrd is also in reserved regions, if it is at the begin or at the
      end of physical memory, kernel will refuse to reuse the memory. Because
      the virt_addr_valid check in free_initrd_mem.
      
      So it is better to fix and clean up those issues.
      Calculate min_low_pfn and max_low_pfn in a consistent way.
      Signed-off-by: default avatarZou Nan hai <nanhai.zou@intel.com>
      Acked-by: default avatarJay Lan <jlan@sgi.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      a3f5c338