1. 26 4月, 2005 5 次提交
  2. 25 4月, 2005 12 次提交
  3. 23 4月, 2005 1 次提交
    • A
      [IA64] cpu hotplug: return offlined cpus to SAL · b8d8b883
      Ashok Raj 提交于
      This patch is required to support cpu removal for IPF systems. Existing code
      just fakes the real offline by keeping it run the idle thread, and polling
      for the bit to re-appear in the cpu_state to get out of the idle loop.
      
      For the cpu-offline to work correctly, we need to pass control of this CPU 
      back to SAL so it can continue in the boot-rendez mode. This gives the
      SAL control to not pick this cpu as the monarch processor for global MCA
      events, and addition does not wait for this cpu to checkin with SAL
      for global MCA events as well. The handoff is implemented as documented in 
      SAL specification section 3.2.5.1 "OS_BOOT_RENDEZ to SAL return State"
      Signed-off-by: NAshok Raj <ashok.raj@intel.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      b8d8b883
  4. 22 4月, 2005 6 次提交
  5. 21 4月, 2005 1 次提交
  6. 20 4月, 2005 10 次提交
    • S
      [NET]: skbuff: remove old NET_CALLER macro · 9c2b3328
      Stephen Hemminger 提交于
      Here is a revised alternative that uses BUG_ON/WARN_ON
      (as suggested by Herbert Xu) to eliminate NET_CALLER.
      Signed-off-by: NStephen Hemminger <shemminger@osdl.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9c2b3328
    • H
      [IPV6]: IPV6_CHECKSUM socket option can corrupt kernel memory · 357b40a1
      Herbert Xu 提交于
      So here is a patch that introduces skb_store_bits -- the opposite of
      skb_copy_bits, and uses them to read/write the csum field in rawv6.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      357b40a1
    • H
      c4d54110
    • H
      [PATCH] freepgt: arch FIRST_USER_ADDRESS 0 · d455a369
      Hugh Dickins 提交于
      Replace misleading definition of FIRST_USER_PGD_NR 0 by definition of
      FIRST_USER_ADDRESS 0 in all the MMU architectures beyond arm and arm26.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d455a369
    • H
      [PATCH] freepgt: arm26 FIRST_USER_ADDRESS PAGE_SIZE · cdfb82ff
      Hugh Dickins 提交于
      ARM26 define FIRST_USER_ADDRESS as PAGE_SIZE (beyond the machine vectors when
      they are mapped low), and use that definition in place of locally defined
      MIN_MAP_ADDR.  Previously, ARM26 permitted user mappings at 0 if the machine
      vectors were mapped high; but that's inconsistent with ARM, and
      FIRST_USER_ADDRESS would then have to be determined at runtime.  Let's fix it
      at PAGE_SIZE throughout the architecture.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cdfb82ff
    • H
      [PATCH] freepgt: arm FIRST_USER_ADDRESS PAGE_SIZE · 6119be0b
      Hugh Dickins 提交于
      ARM define FIRST_USER_ADDRESS as PAGE_SIZE (beyond the machine vectors when
      they are mapped low), and use that definition in place of locally defined
      MIN_MAP_ADDR.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      6119be0b
    • H
      [PATCH] freepgt: remove arch pgd_addr_end · 8f6c99c1
      Hugh Dickins 提交于
      ia64 and sparc64 hurriedly had to introduce their own variants of
      pgd_addr_end, to leapfrog over the holes in their virtual address spaces which
      the final clear_page_range suddenly presented when converted from pgd_index to
      pgd_addr_end.  But now that free_pgtables respects the vma list, those holes
      are never presented, and the arch variants can go.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8f6c99c1
    • H
      [PATCH] freepgt: hugetlb_free_pgd_range · 3bf5ee95
      Hugh Dickins 提交于
      ia64 and ppc64 had hugetlb_free_pgtables functions which were no longer being
      called, and it wasn't obvious what to do about them.
      
      The ppc64 case turns out to be easy: the associated tables are noted elsewhere
      and freed later, safe to either skip its hugetlb areas or go through the
      motions of freeing nothing.  Since ia64 does need a special case, restore to
      ppc64 the special case of skipping them.
      
      The ia64 hugetlb case has been broken since pgd_addr_end went in, though it
      probably appeared to work okay if you just had one such area; in fact it's
      been broken much longer if you consider a long munmap spanning from another
      region into the hugetlb region.
      
      In the ia64 hugetlb region, more virtual address bits are available than in
      the other regions, yet the page tables are structured the same way: the page
      at the bottom is larger.  Here we need to scale down each addr before passing
      it to the standard free_pgd_range.  Was about to write a hugely_scaled_down
      macro, but found htlbpage_to_page already exists for just this purpose.  Fixed
      off-by-one in ia64 is_hugepage_only_range.
      
      Uninline free_pgd_range to make it available to ia64.  Make sure the
      vma-gathering loop in free_pgtables cannot join a hugepage_only_range to any
      other (safe to join huges?  probably but don't bother).
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3bf5ee95
    • H
      [PATCH] freepgt: remove MM_VM_SIZE(mm) · ee39b37b
      Hugh Dickins 提交于
      There's only one usage of MM_VM_SIZE(mm) left, and it's a troublesome macro
      because mm doesn't contain the (32-bit emulation?) info needed.  But it too is
      only needed because we ignore the end from the vma list.
      
      We could make flush_pgtables return that end, or unmap_vmas.  Choose the
      latter, since it's a natural fit with unmap_mapping_range_vma needing to know
      its restart addr.  This does make more than minimal change, but if unmap_vmas
      had returned the end before, this is how we'd have done it, rather than
      storing the break_addr in zap_details.
      
      unmap_vmas used to return count of vmas scanned, but that's just debug which
      hasn't been useful in a while; and if we want the map_count 0 on exit check
      back, it can easily come from the final remove_vm_struct loop.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      ee39b37b
    • H
      [PATCH] freepgt: free_pgtables use vma list · e0da382c
      Hugh Dickins 提交于
      Recent woes with some arches needing their own pgd_addr_end macro; and 4-level
      clear_page_range regression since 2.6.10's clear_page_tables; and its
      long-standing well-known inefficiency in searching throughout the higher-level
      page tables for those few entries to clear and free: all can be blamed on
      ignoring the list of vmas when we free page tables.
      
      Replace exit_mmap's clear_page_range of the total user address space by
      free_pgtables operating on the mm's vma list; unmap_region use it in the same
      way, giving floor and ceiling beyond which it may not free tables.  This
      brings lmbench fork/exec/sh numbers back to 2.6.10 (unless preempt is enabled,
      in which case latency fixes spoil unmap_vmas throughput).
      
      Beware: the do_mmap_pgoff driver failure case must now use unmap_region
      instead of zap_page_range, since a page table might have been allocated, and
      can only be freed while it is touched by some vma.
      
      Move free_pgtables from mmap.c to memory.c, where its lower levels are adapted
      from the clear_page_range levels.  (Most of free_pgtables' old code was
      actually for a non-existent case, prev not properly set up, dating from before
      hch gave us split_vma.) Pass mmu_gather** in the public interfaces, since we
      might want to add latency lockdrops later; but no attempt to do so yet, going
      by vma should itself reduce latency.
      
      But what if is_hugepage_only_range?  Those ia64 and ppc64 cases need careful
      examination: put that off until a later patch of the series.
      
      What of x86_64's 32bit vdso page __map_syscall32 maps outside any vma?
      
      And the range to sparc64's flush_tlb_pgtables?  It's less clear to me now that
      we need to do more than is done here - every PMD_SIZE ever occupied will be
      flushed, do we really have to flush every PGDIR_SIZE ever partially occupied? 
      A shame to complicate it unnecessarily.
      
      Special thanks to David Miller for time spent repairing my ceilings.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e0da382c
  7. 19 4月, 2005 5 次提交