1. 03 5月, 2012 2 次提交
    • S
      powerpc/47x: Kernel support for KEXEC · 68343020
      Suzuki Poulose 提交于
      This patch adds support for creating 1:1 mapping for the PPC_47x during
      a KEXEC. The implementation is similar to that of the PPC440x which is
      described here :
      
      	http://patchwork.ozlabs.org/patch/104323/
      
      PPC_47x MMU :
      
      The 47x uses Unified TLB 1024 entries, with 4-way associative mapping
      (4 x 256 entries). The index to be used is calculated by the MMU by
      hashing the PID, EPN and TS. The software can choose to specify the way
      by setting bit 0(enable way select) and the way in bits 1-2 in the TLB
      Word 0.
      
      Implementation:
      
      The patch erases all the UTLB entries which includes the tlb covering
      the mapping for our code. The shadow TLB caches the mapping for the
      running code which helps us to continue the execution until we do
      isync/rfi. We then create a tmp mapping for the current code in the
      other address space (TS) and switch to it.
      
      Then we create a 1:1 mapping(EPN=RPN) for 0-2GiB in the original
      address space and switch to the new mapping.
      
      TODO: Add SMP support.
      Signed-off-by: NSuzuki K. Poulose <suzuki@in.ibm.com>
      Signed-off-by: NJosh Boyer <jwboyer@gmail.com>
      68343020
    • S
      powerpc/44x: Fix/Initialize PID to kernel PID before the TLB search · f13bfcc6
      Suzuki Poulose 提交于
      Initialize the PID register with kernel pid (0) before we start
      setting the TLB mapping for KEXEC. Also set the MMUCR[TID] to kernel
      PID.
      
      This was spotted while testing the kexec on ISS for 47x. ISS  doesn't
      return a successful tlbsx for a kernel address with PID set to a user PID.
      Though the hardware/qemu/simics work fine.
      
      This patch is harmless and initializes the PID to 0 (kernel PID) which
      is usually the case during a normal kernel boot. This would fix the kexec
      on ISS for 440. I have tested this patch on sequoia board.
      Signed-off-by: NSuzuki K Poulose <suzuki@in.ibm.com>
      Cc: Josh Boyer <jwboyer@gmail.com>
      Signed-off-by: NJosh Boyer <jwboyer@gmail.com>
      f13bfcc6
  2. 30 4月, 2012 37 次提交
  3. 29 4月, 2012 1 次提交
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · f7b00693
      Linus Torvalds 提交于
      Pull btrfs fixes from Chris Mason:
       "This has our collection of bug fixes.  I missed the last rc because I
        thought our patches were making NFS crash during my xfs test runs.
        Turns out it was an NFS client bug fixed by someone else while I tried
        to bisect it.
      
        All of these fixes are small, but some are fairly high impact.  The
        biggest are fixes for our mount -o remount handling, a deadlock due to
        GFP_KERNEL allocations in readdir, and a RAID10 error handling bug.
      
        This was tested against both 3.3 and Linus' master as of this morning."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs: (26 commits)
        Btrfs: reduce lock contention during extent insertion
        Btrfs: avoid deadlocks from GFP_KERNEL allocations during btrfs_real_readdir
        Btrfs: Fix space checking during fs resize
        Btrfs: fix block_rsv and space_info lock ordering
        Btrfs: Prevent root_list corruption
        Btrfs: fix repair code for RAID10
        Btrfs: do not start delalloc inodes during sync
        Btrfs: fix that check_int_data mount option was ignored
        Btrfs: don't count CRC or header errors twice while scrubbing
        Btrfs: fix btrfs_ioctl_dev_info() crash on missing device
        btrfs: don't return EINTR
        Btrfs: double unlock bug in error handling
        Btrfs: always store the mirror we read the eb from
        fs/btrfs/volumes.c: add missing free_fs_devices
        btrfs: fix early abort in 'remount'
        Btrfs: fix max chunk size check in chunk allocator
        Btrfs: add missing read locks in backref.c
        Btrfs: don't call free_extent_buffer twice in iterate_irefs
        Btrfs: Make free_ipath() deal gracefully with NULL pointers
        Btrfs: avoid possible use-after-free in clear_extent_bit()
        ...
      f7b00693