“b8f383b86bc748382cc7cb5b3602c0c2ff9cb60c”上不存在“include/configs/alt.h”
  1. 30 10月, 2005 2 次提交
    • H
      [PATCH] mm: init_mm without ptlock · 872fec16
      Hugh Dickins 提交于
      First step in pushing down the page_table_lock.  init_mm.page_table_lock has
      been used throughout the architectures (usually for ioremap): not to serialize
      kernel address space allocation (that's usually vmlist_lock), but because
      pud_alloc,pmd_alloc,pte_alloc_kernel expect caller holds it.
      
      Reverse that: don't lock or unlock init_mm.page_table_lock in any of the
      architectures; instead rely on pud_alloc,pmd_alloc,pte_alloc_kernel to take
      and drop it when allocating a new one, to check lest a racing task already
      did.  Similarly no page_table_lock in vmalloc's map_vm_area.
      
      Some temporary ugliness in __pud_alloc and __pmd_alloc: since they also handle
      user mms, which are converted only by a later patch, for now they have to lock
      differently according to whether or not it's init_mm.
      
      If sources get muddled, there's a danger that an arch source taking
      init_mm.page_table_lock will be mixed with common source also taking it (or
      neither take it).  So break the rules and make another change, which should
      break the build for such a mismatch: remove the redundant mm arg from
      pte_alloc_kernel (ppc64 scrapped its distinct ioremap_mm in 2.6.13).
      
      Exceptions: arm26 used pte_alloc_kernel on user mm, now pte_alloc_map; ia64
      used pte_alloc_map on init_mm, now pte_alloc_kernel; parisc had bad args to
      pmd_alloc and pte_alloc_kernel in unused USE_HPPA_IOREMAP code; ppc64
      map_io_page forgot to unlock on failure; ppc mmu_mapin_ram and ppc64 im_free
      took page_table_lock for no good reason.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      872fec16
    • N
      [PATCH] core remove PageReserved · b5810039
      Nick Piggin 提交于
      Remove PageReserved() calls from core code by tightening VM_RESERVED
      handling in mm/ to cover PageReserved functionality.
      
      PageReserved special casing is removed from get_page and put_page.
      
      All setting and clearing of PageReserved is retained, and it is now flagged
      in the page_alloc checks to help ensure we don't introduce any refcount
      based freeing of Reserved pages.
      
      MAP_PRIVATE, PROT_WRITE of VM_RESERVED regions is tentatively being
      deprecated.  We never completely handled it correctly anyway, and is be
      reintroduced in future if required (Hugh has a proof of concept).
      
      Once PageReserved() calls are removed from kernel/power/swsusp.c, and all
      arch/ and driver code, the Set and Clear calls, and the PG_reserved bit can
      be trivially removed.
      
      Last real user of PageReserved is swsusp, which uses PageReserved to
      determine whether a struct page points to valid memory or not.  This still
      needs to be addressed (a generic page_is_ram() should work).
      
      A last caveat: the ZERO_PAGE is now refcounted and managed with rmap (and
      thus mapcounted and count towards shared rss).  These writes to the struct
      page could cause excessive cacheline bouncing on big systems.  There are a
      number of ways this could be addressed if it is an issue.
      Signed-off-by: NNick Piggin <npiggin@suse.de>
      
      Refcount bug fix for filemap_xip.c
      Signed-off-by: NCarsten Otte <cotte@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b5810039
  2. 27 10月, 2005 1 次提交
  3. 22 10月, 2005 3 次提交
    • D
      [PATCH] ppc64: Fix typo bug in iSeries hash code · 3078fcc1
      David Gibson 提交于
      This fixes a stupid typo bug in the iSeries hash table code.
      
      When we place a hash PTE in the secondary bucket, instead of setting the
      SECONDARY flag bit, as we should, we (redundantly) set the VALID flag.
      
      This was introduced with the patch abolishing bitfields from the hash
      table code.  Mea culpa, oops.  It hasn't been noticed until now because
      in practice we don't hit the secondary bucket terribly often.
      Signed-off-by: NDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3078fcc1
    • B
      [PATCH] ppc64: Fix pages marked dirty abusively · 5d965515
      Benjamin Herrenschmidt 提交于
      While working on 64K pages, I found this little buglet in our
      update_mmu_cache() implementation.
      
      The code calls __hash_page() passing it an "access" parameter (the type
      of access that triggers the hash) containing the bits _PAGE_RW and
      _PAGE_USER of the linux PTE.  The latter is useless in this case and the
      former is wrong.  In fact, if we have a writeable PTE and we pass
      _PAGE_RW to hash_page(), it will set _PAGE_DIRTY (since we track dirty
      that way, by hash faulting !dirty) which is not what we want.
      
      In fact, the correct fix is to always pass 0. That means that only
      read-only or already dirty read write PTEs will be preloaded. The
      (hopefully rare) case of a non dirty read write PTE can't be preloaded
      this way, it will have to fault in hash_page on the actual access.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      5d965515
    • P
      [PATCH] ppc64: Fix typo in time calculations · a1c7e111
      Paul Mackerras 提交于
      This fixes a typo in the div128_by_32 function used in the timekeeping
      calculations on ppc64.  If you look at the code it's quite obvious
      that we need (rb + c) rather than (rb + b).  The "b" is clearly just a
      typo.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a1c7e111
  4. 20 10月, 2005 2 次提交
  5. 15 10月, 2005 1 次提交
  6. 12 10月, 2005 2 次提交
  7. 09 10月, 2005 1 次提交
  8. 02 10月, 2005 1 次提交
  9. 30 9月, 2005 1 次提交
  10. 28 9月, 2005 2 次提交
  11. 24 9月, 2005 1 次提交
    • B
      [PATCH] ppc64: Fix huge pages MMU mapping bug · 67b10813
      Benjamin Herrenschmidt 提交于
      Current kernel has a couple of sneaky bugs in the ppc64 hugetlb code that
      cause huge pages to be potentially left stale in the hash table and TLBs
      (improperly invalidated), with all the nasty consequences that can have.
      
      One is that we forgot to set the "secondary" bit in the hash PTEs when
      hashing a huge page in the secondary bucket (fortunately very rare).
      
      The other one is on non-LPAR machines (like Apple G5s), flush_hash_range()
      which is used to flush a batch of PTEs simply did not work for huge pages.
      Historically, our huge page code didn't batch, but this was changed without
      fixing this routine.  This patch fixes both.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      67b10813
  12. 23 9月, 2005 4 次提交
  13. 22 9月, 2005 4 次提交
  14. 18 9月, 2005 1 次提交
  15. 15 9月, 2005 3 次提交
    • J
      [PATCH] ppc64: Fix recent regression · be201f7f
      Jimi Xenidis 提交于
      As noted by Olof Johansson <olof@lixom.net>:
      
        "A recent patch changed the way the LPAR bit is checked during early
         boot.  This resulted in a polarity change in a conditional branch
         without changing the branch, causing at least some legacy machines to
         not boot."
      
      This fixes it.
      Signed-off-by: NJimi Xenidis <jimix@watson.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      be201f7f
    • D
      [LIB]: Consolidate _atomic_dec_and_lock() · 4db2ce01
      David S. Miller 提交于
      Several implementations were essentialy a common piece of C code using
      the cmpxchg() macro.  Put the implementation in one spot that everyone
      can share, and convert sparc64 over to using this.
      
      Alpha is the lone arch-specific implementation, which codes up a
      special fast path for the common case in order to avoid GP reloading
      which a pure C version would require.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4db2ce01
    • H
      [PATCH] error path in setup_arg_pages() misses vm_unacct_memory() · 2fd4ef85
      Hugh Dickins 提交于
      Pavel Emelianov and Kirill Korotaev observe that fs and arch users of
      security_vm_enough_memory tend to forget to vm_unacct_memory when a
      failure occurs further down (typically in setup_arg_pages variants).
      
      These are all users of insert_vm_struct, and that reservation will only
      be unaccounted on exit if the vma is marked VM_ACCOUNT: which in some
      cases it is (hidden inside VM_STACK_FLAGS) and in some cases it isn't.
      
      So x86_64 32-bit and ppc64 vDSO ELFs have been leaking memory into
      Committed_AS each time they're run.  But don't add VM_ACCOUNT to them,
      it's inappropriate to reserve against the very unlikely case that gdb
      be used to COW a vDSO page - we ought to do something about that in
      do_wp_page, but there are yet other inconsistencies to be resolved.
      
      The safe and economical way to fix this is to let insert_vm_struct do
      the security_vm_enough_memory check when it finds VM_ACCOUNT is set.
      
      And the MIPS irix_brk has been calling security_vm_enough_memory before
      calling do_brk which repeats it, doubly accounting and so also leaking.
      Remove that, and all the fs and arch calls to security_vm_enough_memory:
      give it a less misleading name later on.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-Off-By: NKirill Korotaev <dev@sw.ru>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      2fd4ef85
  16. 13 9月, 2005 1 次提交
    • P
      [PATCH] ppc64: Make eeh_init function again · 0160f53e
      Paul Mackerras 提交于
      My patch "Separate pci bits out of struct device_node" (commit
      1635317f) had the unfortunate
      side-effect that it stopped eeh_init() from working correctly.
      
      It needs the pointers set up by find_and_init_phbs(), but it was being
      called just before find_and_init_phbs().  That meant that we didn't
      enable EEH (pSeries PCI error recovery) on any devices, and that meant
      that on POWER5 systems, the hypervisor wouldn't let us enable memory or
      I/O space access to any devices, and their drivers got somewhat
      confused.
      
      This fixes it by moving the eeh_init call after find_and_init_phbs.
      Tested on a POWER5 partition.
      Signed-of-by: NPaul Mackerras <paulus@samba.org>
      Signed-of-by: NLinus Torvalds <torvalds@osdl.org>
      0160f53e
  17. 12 9月, 2005 8 次提交
  18. 11 9月, 2005 2 次提交