1. 20 3月, 2011 3 次提交
    • S
      xen: update mask_rw_pte after kernel page tables init changes · d8aa5ec3
      Stefano Stabellini 提交于
      After "x86-64, mm: Put early page table high" already existing kernel
      page table pages can be mapped using early_ioremap too so we need to
      update mask_rw_pte to make sure these pages are still mapped RO.
      The reason why we have to do that is explain by the commit message of
      fef5ba79:
      
      "Xen requires that all pages containing pagetable entries to be mapped
      read-only.  If pages used for the initial pagetable are already mapped
      then we can change the mapping to RO.  However, if they are initially
      unmapped, we need to make sure that when they are later mapped, they
      are also mapped RO.
      
      ..SNIP..
      
      the pagetable setup code early_ioremaps the pages to write their
      entries, so we must make sure that mappings created in the early_ioremap
      fixmap area are mapped RW.  (Those mappings are removed before the pages
      are presented to Xen as pagetable pages.)"
      
      We accomplish all this in mask_rw_pte by mapping RO all the pages mapped
      using early_ioremap apart from the last one that has been allocated
      because it is not a page table page yet (it has not been hooked into the
      page tables yet).
      Signed-off-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
      Acked-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      LKML-Reference: <alpine.DEB.2.00.1103171739050.3382@kaball-desktop>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      d8aa5ec3
    • S
      xen: set max_pfn_mapped to the last pfn mapped · 14988a4d
      Stefano Stabellini 提交于
      Do not set max_pfn_mapped to the end of the initial memory mappings,
      that also contain pages that don't belong in pfn space (like the mfn
      list).
      
      Set max_pfn_mapped to the last real pfn mapped in the initial memory
      mappings that is the pfn backing _end.
      Signed-off-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
      Acked-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      LKML-Reference: <alpine.DEB.2.00.1103171739050.3382@kaball-desktop>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      14988a4d
    • Y
      x86: Cleanup highmap after brk is concluded · e5f15b45
      Yinghai Lu 提交于
      Now cleanup_highmap actually is in two steps: one is early in head64.c
      and only clears above _end; a second one is in init_memory_mapping() and
      tries to clean from _brk_end to _end.
      It should check if those boundaries are PMD_SIZE aligned but currently
      does not.
      Also init_memory_mapping() is called several times for numa or memory
      hotplug, so we really should not handle initial kernel mappings there.
      
      This patch moves cleanup_highmap() down after _brk_end is settled so
      we can do everything in one step.
      Also we honor max_pfn_mapped in the implementation of cleanup_highmap.
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
      LKML-Reference: <alpine.DEB.2.00.1103171739050.3382@kaball-desktop>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      e5f15b45
  2. 18 3月, 2011 6 次提交
    • S
      x86: Flush TLB if PGD entry is changed in i386 PAE mode · 4981d01e
      Shaohua Li 提交于
      According to intel CPU manual, every time PGD entry is changed in i386 PAE
      mode, we need do a full TLB flush. Current code follows this and there is
      comment for this too in the code.
      
      But current code misses the multi-threaded case. A changed page table
      might be used by several CPUs, every such CPU should flush TLB. Usually
      this isn't a problem, because we prepopulate all PGD entries at process
      fork. But when the process does munmap and follows new mmap, this issue
      will be triggered.
      
      When it happens, some CPUs keep doing page faults:
      
        http://marc.info/?l=linux-kernel&m=129915020508238&w=2
      
      Reported-by: Yasunori Goto<y-goto@jp.fujitsu.com>
      Tested-by: Yasunori Goto<y-goto@jp.fujitsu.com>
      Reviewed-by: NRik van Riel <riel@redhat.com>
      Signed-off-by: Shaohua Li<shaohua.li@intel.com>
      Cc: Mallick Asit K <asit.k.mallick@intel.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: linux-mm <linux-mm@kvack.org>
      Cc: stable <stable@kernel.org>
      LKML-Reference: <1300246649.2337.95.camel@sli10-conroe>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4981d01e
    • N
      x86, dumpstack: Correct stack dump info when frame pointer is available · e8e999cf
      Namhyung Kim 提交于
      Current stack dump code scans entire stack and check each entry
      contains a pointer to kernel code. If CONFIG_FRAME_POINTER=y it
      could mark whether the pointer is valid or not based on value of
      the frame pointer. Invalid entries could be preceded by '?' sign.
      
      However this was not going to happen because scan start point
      was always higher than the frame pointer so that they could not
      meet.
      
      Commit 9c0729dc ("x86: Eliminate bp argument from the stack
      tracing routines") delayed bp acquisition point, so the bp was
      read in lower frame, thus all of the entries were marked
      invalid.
      
      This patch fixes this by reverting above commit while retaining
      stack_frame() helper as suggested by Frederic Weisbecker.
      
      End result looks like below:
      
      before:
      
       [    3.508329] Call Trace:
       [    3.508551]  [<ffffffff814f35c9>] ? panic+0x91/0x199
       [    3.508662]  [<ffffffff814f3739>] ? printk+0x68/0x6a
       [    3.508770]  [<ffffffff81a981b2>] ? mount_block_root+0x257/0x26e
       [    3.508876]  [<ffffffff81a9821f>] ? mount_root+0x56/0x5a
       [    3.508975]  [<ffffffff81a98393>] ? prepare_namespace+0x170/0x1a9
       [    3.509216]  [<ffffffff81a9772b>] ? kernel_init+0x1d2/0x1e2
       [    3.509335]  [<ffffffff81003894>] ? kernel_thread_helper+0x4/0x10
       [    3.509442]  [<ffffffff814f6880>] ? restore_args+0x0/0x30
       [    3.509542]  [<ffffffff81a97559>] ? kernel_init+0x0/0x1e2
       [    3.509641]  [<ffffffff81003890>] ? kernel_thread_helper+0x0/0x10
      
      after:
      
       [    3.522991] Call Trace:
       [    3.523351]  [<ffffffff814f35b9>] panic+0x91/0x199
       [    3.523468]  [<ffffffff814f3729>] ? printk+0x68/0x6a
       [    3.523576]  [<ffffffff81a981b2>] mount_block_root+0x257/0x26e
       [    3.523681]  [<ffffffff81a9821f>] mount_root+0x56/0x5a
       [    3.523780]  [<ffffffff81a98393>] prepare_namespace+0x170/0x1a9
       [    3.523885]  [<ffffffff81a9772b>] kernel_init+0x1d2/0x1e2
       [    3.523987]  [<ffffffff81003894>] kernel_thread_helper+0x4/0x10
       [    3.524228]  [<ffffffff814f6880>] ? restore_args+0x0/0x30
       [    3.524345]  [<ffffffff81a97559>] ? kernel_init+0x0/0x1e2
       [    3.524445]  [<ffffffff81003890>] ? kernel_thread_helper+0x0/0x10
      
       -v5:
         * fix build breakage with oprofile
      
       -v4:
         * use 0 instead of regs->bp
         * separate out printk changes
      
       -v3:
         * apply comment from Frederic
         * add a couple of printk fixes
      Signed-off-by: NNamhyung Kim <namhyung@gmail.com>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Acked-by: NFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Soren Sandmann <ssp@redhat.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
      Cc: Robert Richter <robert.richter@amd.com>
      LKML-Reference: <1300416006-3163-1-git-send-email-namhyung@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e8e999cf
    • I
      x86: Clean up csum-copy_64.S a bit · 2c76397b
      Ingo Molnar 提交于
      The many stray whitespaces and other uncleanlinesses made this code
      almost unreadable to me - so fix those.
      
      No changes to the code.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      2c76397b
    • L
      x86: Fix common misspellings · 0d2eb44f
      Lucas De Marchi 提交于
      They were generated by 'codespell' and then manually reviewed.
      Signed-off-by: NLucas De Marchi <lucas.demarchi@profusion.mobi>
      Cc: trivial@kernel.org
      LKML-Reference: <1300389856-1099-3-git-send-email-lucas.demarchi@profusion.mobi>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0d2eb44f
    • L
      x86: Fix misspelling and align params · a6c3270b
      Lucas De Marchi 提交于
      Fix 'upto' misspelling and align parameters.
      Signed-off-by: NLucas De Marchi <lucas.demarchi@profusion.mobi>
      Cc: trivial@kernel.org
      LKML-Reference: <1300389856-1099-2-git-send-email-lucas.demarchi@profusion.mobi>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a6c3270b
    • I
      Merge branch 'linus' into x86/urgent · 8dd8997d
      Ingo Molnar 提交于
      Merge reason: Merge upstream commits to avoid conflicts in upcoming patches.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8dd8997d
  3. 17 3月, 2011 1 次提交
  4. 16 3月, 2011 30 次提交
    • I
      Merge branch 'x86/amd-nb' into x86/urgent · 344c21c3
      Ingo Molnar 提交于
      Merge reason: This is one followup commit that was not in x86/mm - merge it via the urgent path
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      344c21c3
    • L
      Merge branch 'core-rcu-for-linus' of... · 016aa2ed
      Linus Torvalds 提交于
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        smp: Document transitivity for memory barriers.
        rcu: add comment saying why DEBUG_OBJECTS_RCU_HEAD depends on PREEMPT.
        rcupdate: remove dead code
        rcu: add documentation saying which RCU flavor to choose
        rcutorture: Get rid of duplicate sched.h include
        rcu: call __rcu_read_unlock() in exit_rcu for tiny RCU
      016aa2ed
    • L
      Increase OSF partition limit from 8 to 18 · 34d211a2
      Linus Torvalds 提交于
      It turns out that while a maximum of 8 partitions may be what people
      "should" have had, you can actually fit up to 18 entries(*) in a sector.
      
      And some people clearly were taking advantage of that, like Michael
      Cree, who had ten partitions on one of his OSF disks.
      
      (*) The OSF partition data starts at byte offset 64 in the first sector,
          and the array of 16-byte partition entries start at offset 148 in
          the on-disk partition structure.
      Reported-by: NMichael Cree <mcree@orcon.net.nz>
      Cc: stable@kernel.org (v2.6.38)
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      34d211a2
    • C
      prune back iprune_sem · bab1d944
      Christoph Hellwig 提交于
      iprune_sem is continously giving us lockdep warnings because we do take it in
      read mode in the reclaim path, but we're also doing non-NOFS allocations under
      it taken in write mode.
      
      Taking a bit deeper look at it I think it's fixable quite trivially:
      
       - for invalidate_inodes we do not need iprune_sem at all.  We have an active
         reference on the superblock, so the filesystem is not going away until it
         has finished.
       - for evict_inodes we do need it, to make sure prune_icache has done it's
         work before we tear down the superblock.  But there is no reason to
         hold it over the actual reclaim operation - it's enough to cycle through
         it after the actual reclaim to make sure we wait for any pending
         prune_icache to complete.  We just have to remove the WARN_ON for
         otherwise busy inodes as they can actually happen now.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      bab1d944
    • S
      vfs: add nonconflicting values for O_PATH · 5229645b
      Stephen Rothwell 提交于
      [AV: on architectures where default conflicts with existing
      flags, that is]
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      5229645b
    • B
      x86, AMD: Set ARAT feature on AMD processors · b87cf80a
      Boris Ostrovsky 提交于
      Support for Always Running APIC timer (ARAT) was introduced in
      commit db954b58. This feature
      allows us to avoid switching timers from LAPIC to something else
      (e.g. HPET) and go into timer broadcasts when entering deep
      C-states.
      
      AMD processors don't provide a CPUID bit for that feature but
      they also keep APIC timers running in deep C-states (except for
      cases when the processor is affected by erratum 400). Therefore
      we should set ARAT feature bit on AMD CPUs.
      Tested-by: NBorislav Petkov <borislav.petkov@amd.com>
      Acked-by: NAndreas Herrmann <andreas.herrmann3@amd.com>
      Acked-by: NMark Langsdorf <mark.langsdorf@amd.com>
      Acked-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NBoris Ostrovsky <boris.ostrovsky@amd.com>
      LKML-Reference: <1300205624-4813-1-git-send-email-ostr@amd64.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      b87cf80a
    • A
      x86, quirk: Fix SB600 revision check · 1d3e09a3
      Andreas Herrmann 提交于
      Commit 7f74f8f2
      (x86 quirk: Fix polarity for IRQ0 pin2 override on SB800
      systems) introduced a regression. It removed some SB600 specific
      code to determine the revision ID without adapting a
      corresponding revision ID check for SB600.
      
      See this mail thread:
      
        http://marc.info/?l=linux-kernel&m=129980296006380&w=2
      
      This patch adapts the corresponding check to cover all SB600
      revisions.
      Tested-by: NWang Lei <f3d27b@gmail.com>
      Signed-off-by: NAndreas Herrmann <andreas.herrmann3@amd.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: stable@kernel.org # 38.x, 37.x, 32.x
      LKML-Reference: <20110315143137.GD29499@alberich.amd.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1d3e09a3
    • A
      fix follow_link() breakage · 0e794589
      Al Viro 提交于
      commit 574197e0 had a missing
      piece, breaking the loop detection ;-/
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      0e794589
    • L
      Merge branch 'x86-platform-for-linus' of... · d1090281
      Linus Torvalds 提交于
      Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)
        x86: Clean up apic.c and apic.h
        x86: Remove superflous goal definition of tsc_sync
        x86: dt: Correct local apic documentation in device tree bindings
        x86: dt: Cleanup local apic setup
        x86: dt: Fix OLPC=y/INTEL_CE=n build
        rtc: cmos: Add OF bindings
        x86: ce4100: Use OF to setup devices
        x86: ioapic: Add OF bindings for IO_APIC
        x86: dtb: Add generic bus probe
        x86: dtb: Add support for PCI devices backed by dtb nodes
        x86: dtb: Add device tree support for HPET
        x86: dtb: Add early parsing of IO_APIC
        x86: dtb: Add irq domain abstraction
        x86: dtb: Add a device tree for CE4100
        x86: Add device tree support
        x86: e820: Remove conditional early mapping in parse_e820_ext
        x86: OLPC: Make OLPC=n build again
        x86: OLPC: Remove extra OLPC_OPENFIRMWARE_DT indirection
        x86: OLPC: Cleanup config maze completely
        x86: OLPC: Hide OLPC_OPENFIRMWARE config switch
        ...
      
      Fix up conflicts in arch/x86/platform/ce4100/ce4100.c
      d1090281
    • L
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · 181f977d
      Linus Torvalds 提交于
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (93 commits)
        x86, tlb, UV: Do small micro-optimization for native_flush_tlb_others()
        x86-64, NUMA: Don't call numa_set_distanc() for all possible node combinations during emulation
        x86-64, NUMA: Don't assume phys node 0 is always online in numa_emulation()
        x86-64, NUMA: Clean up initmem_init()
        x86-64, NUMA: Fix numa_emulation code with node0 without RAM
        x86-64, NUMA: Revert NUMA affine page table allocation
        x86: Work around old gas bug
        x86-64, NUMA: Better explain numa_distance handling
        x86-64, NUMA: Fix distance table handling
        mm: Move early_node_map[] reverse scan helpers under HAVE_MEMBLOCK
        x86-64, NUMA: Fix size of numa_distance array
        x86: Rename e820_table_* to pgt_buf_*
        bootmem: Move __alloc_memory_core_early() to nobootmem.c
        bootmem: Move contig_page_data definition to bootmem.c/nobootmem.c
        bootmem: Separate out CONFIG_NO_BOOTMEM code into nobootmem.c
        x86-64, NUMA: Seperate out numa_alloc_distance() from numa_set_distance()
        x86-64, NUMA: Add proper function comments to global functions
        x86-64, NUMA: Move NUMA emulation into numa_emulation.c
        x86-64, NUMA: Prepare numa_emulation() for moving NUMA emulation into a separate file
        x86-64, NUMA: Do not scan two times for setup_node_bootmem()
        ...
      
      Fix up conflicts in arch/x86/kernel/smpboot.c
      181f977d
    • L
      Merge branch 'x86-mem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · d5d42399
      Linus Torvalds 提交于
      * 'x86-mem-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86-64, mem: Convert memmove() to assembly file and fix return value bug
      d5d42399
    • L
      Merge branch 'x86-microcode-for-linus' of... · 209b6c8f
      Linus Torvalds 提交于
      Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86, microcode, AMD: Fix signedness bug in generic_load_microcode()
        x86, microcode, AMD: Extend ucode size verification
        x86, microcode, AMD: Cleanup dmesg output
        x86, microcode, AMD: Remove unneeded memset call
        x86, microcode, AMD: Simplify get_next_ucode
        x86, microcode, AMD: Simplify install_equiv_cpu_table
        x86, microcode, AMD: Release firmware on error
        x86, microcode: Correct sysdev_add error path
      209b6c8f
    • L
      Merge branch 'um-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · 0310e437
      Linus Torvalds 提交于
      * 'um-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        um: Select GENERIC_HARDIRQS_NO_DEPRECATED
        um: Use proper accessors in show_interrupts()
        um: Convert irq_chips to new functions
        um: Remove stale irq_chip.end
      0310e437
    • L
      Merge branch 'irq-core-for-linus' of... · 5f6fb454
      Linus Torvalds 提交于
      Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (116 commits)
        x86: Enable forced interrupt threading support
        x86: Mark low level interrupts IRQF_NO_THREAD
        x86: Use generic show_interrupts
        x86: ioapic: Avoid redundant lookup of irq_cfg
        x86: ioapic: Use new move_irq functions
        x86: Use the proper accessors in fixup_irqs()
        x86: ioapic: Use irq_data->state
        x86: ioapic: Simplify irq chip and handler setup
        x86: Cleanup the genirq name space
        genirq: Add chip flag to force mask on suspend
        genirq: Add desc->irq_data accessor
        genirq: Add comments to Kconfig switches
        genirq: Fixup fasteoi handler for oneshot mode
        genirq: Provide forced interrupt threading
        sched: Switch wait_task_inactive to schedule_hrtimeout()
        genirq: Add IRQF_NO_THREAD
        genirq: Allow shared oneshot interrupts
        genirq: Prepare the handling of shared oneshot interrupts
        genirq: Make warning in handle_percpu_event useful
        x86: ioapic: Move trigger defines to io_apic.h
        ...
      
      Fix up trivial(?) conflicts in arch/x86/pci/xen.c due to genirq name
      space changes clashing with the Xen cleanups.  The set_irq_msi() had
      moved to xen_bind_pirq_msi_to_irq().
      5f6fb454
    • L
      Merge branch 'x86-debug-for-linus' of... · 3904afb4
      Linus Torvalds 提交于
      Merge branch 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: Combine printk()s in show_regs_common()
        x86: Don't call dump_stack() from arch_trigger_all_cpu_backtrace_handler()
      3904afb4
    • L
      Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · 502f4d4f
      Linus Torvalds 提交于
      * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: Fix and clean up generic_processor_info()
        x86: Don't copy per_cpu cpuinfo for BSP two times
        x86: Move llc_shared_map out of cpu_info
      502f4d4f
    • L
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · da849abe
      Linus Torvalds 提交于
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86, binutils, xen: Fix another wrong size directive
        x86: Remove dead config option X86_CPU
        x86: Really print supported CPUs if PROCESSOR_SELECT=y
        x86: Fix a bogus unwind annotation in lib/semaphore_32.S
        um, x86-64: Fix UML build after adding CFI annotations to lib/rwsem_64.S
        x86: Remove unused bits from lib/thunk_*.S
        x86: Use {push,pop}_cfi in more places
        x86-64: Add CFI annotations to lib/rwsem_64.S
        x86, asm: Cleanup unnecssary macros in asm-offsets.c
        x86, system.h: Drop unused __SAVE/__RESTORE macros
        x86: Use bitmap library functions
        x86: Partly unify asm-offsets_{32,64}.c
        x86: Reduce back the alignment of the per-CPU data section
      da849abe
    • L
      Merge branch 'timers-rtc-for-linus' of... · 21a32816
      Linus Torvalds 提交于
      Merge branch 'timers-rtc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'timers-rtc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        RTC: Fix up rtc.txt documentation to reflect changes to generic rtc layer
        RTC: sa1100: Update the sa1100 RTC driver.
        RTC: Fix the cross interrupt issue on rtc-test.
        RTC: Remove UIE and PIE information from the sa1100 driver proc.
        RTC: Include information about UIE and PIE in RTC driver proc.
        RTC: Clean out UIE icotl implementations
        RTC: Cleanup rtc_class_ops->update_irq_enable()
        RTC: Cleanup rtc_class_ops->irq_set_freq()
        RTC: Cleanup rtc_class_ops->irq_set_state
        RTC: Initialize kernel state from RTC
      21a32816
    • L
      Merge branch 'timers-core-for-linus' of... · 420c1c57
      Linus Torvalds 提交于
      Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (62 commits)
        posix-clocks: Check write permissions in posix syscalls
        hrtimer: Remove empty hrtimer_init_hres_timer()
        hrtimer: Update hrtimer->state documentation
        hrtimer: Update base[CLOCK_BOOTTIME].offset correctly
        timers: Export CLOCK_BOOTTIME via the posix timers interface
        timers: Add CLOCK_BOOTTIME hrtimer base
        time: Extend get_xtime_and_monotonic_offset() to also return sleep
        time: Introduce get_monotonic_boottime and ktime_get_boottime
        hrtimers: extend hrtimer base code to handle more then 2 clockids
        ntp: Remove redundant and incorrect parameter check
        mn10300: Switch do_timer() to xtimer_update()
        posix clocks: Introduce dynamic clocks
        posix-timers: Cleanup namespace
        posix-timers: Add support for fd based clocks
        x86: Add clock_adjtime for x86
        posix-timers: Introduce a syscall for clock tuning.
        time: Splitout compat timex accessors
        ntp: Add ADJ_SETOFFSET mode bit
        time: Introduce timekeeping_inject_offset
        posix-timer: Update comment
        ...
      
      Fix up new system-call-related conflicts in
      	arch/x86/ia32/ia32entry.S
      	arch/x86/include/asm/unistd_32.h
      	arch/x86/include/asm/unistd_64.h
      	arch/x86/kernel/syscall_table_32.S
      (name_to_handle_at()/open_by_handle_at() vs clock_adjtime()), and some
      due to movement of get_jiffies_64() in:
      	kernel/time.c
      420c1c57
    • L
      Merge branch 'sched-core-for-linus' of... · 9620639b
      Linus Torvalds 提交于
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (26 commits)
        sched: Resched proper CPU on yield_to()
        sched: Allow users with sufficient RLIMIT_NICE to change from SCHED_IDLE policy
        sched: Allow SCHED_BATCH to preempt SCHED_IDLE tasks
        sched: Clean up the IRQ_TIME_ACCOUNTING code
        sched: Add #ifdef around irq time accounting functions
        sched, autogroup: Stop claiming ownership of the root task group
        sched, autogroup: Stop going ahead if autogroup is disabled
        sched, autogroup, sysctl: Use proc_dointvec_minmax() instead
        sched: Fix the group_imb logic
        sched: Clean up some f_b_g() comments
        sched: Clean up remnants of sd_idle
        sched: Wholesale removal of sd_idle logic
        sched: Add yield_to(task, preempt) functionality
        sched: Use a buddy to implement yield_task_fair()
        sched: Limit the scope of clear_buddies
        sched: Check the right ->nr_running in yield_task_fair()
        sched: Avoid expensive initial update_cfs_load(), on UP too
        sched: Fix switch_from_fair()
        sched: Simplify the idle scheduling class
        softirqs: Account ksoftirqd time as cpustat softirq
        ...
      9620639b
    • L
      Merge branch 'perf-core-for-linus' of... · a926021c
      Linus Torvalds 提交于
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (184 commits)
        perf probe: Clean up probe_point_lazy_walker() return value
        tracing: Fix irqoff selftest expanding max buffer
        tracing: Align 4 byte ints together in struct tracer
        tracing: Export trace_set_clr_event()
        tracing: Explain about unstable clock on resume with ring buffer warning
        ftrace/graph: Trace function entry before updating index
        ftrace: Add .ref.text as one of the safe areas to trace
        tracing: Adjust conditional expression latency formatting.
        tracing: Fix event alignment: skb:kfree_skb
        tracing: Fix event alignment: mce:mce_record
        tracing: Fix event alignment: kvm:kvm_hv_hypercall
        tracing: Fix event alignment: module:module_request
        tracing: Fix event alignment: ftrace:context_switch and ftrace:wakeup
        tracing: Remove lock_depth from event entry
        perf header: Stop using 'self'
        perf session: Use evlist/evsel for managing perf.data attributes
        perf top: Don't let events to eat up whole header line
        perf top: Fix events overflow in top command
        ring-buffer: Remove unused #include <linux/trace_irq.h>
        tracing: Add an 'overwrite' trace_option.
        ...
      a926021c
    • L
      Merge branch 'core-locking-for-linus' of... · 0586bed3
      Linus Torvalds 提交于
      Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        rtmutex: tester: Remove the remaining BKL leftovers
        lockdep/timers: Explain in detail the locking problems del_timer_sync() may cause
        rtmutex: Simplify PI algorithm and make highest prio task get lock
        rwsem: Remove redundant asmregparm annotation
        rwsem: Move duplicate function prototypes to linux/rwsem.h
        rwsem: Unify the duplicate rwsem_is_locked() inlines
        rwsem: Move duplicate init macros and functions to linux/rwsem.h
        rwsem: Move duplicate struct rwsem declaration to linux/rwsem.h
        x86: Cleanup rwsem_count_t typedef
        rwsem: Cleanup includes
        locking: Remove deprecated lock initializers
        cred: Replace deprecated spinlock initialization
        kthread: Replace deprecated spinlock initialization
        xtensa: Replace deprecated spinlock initialization
        um: Replace deprecated spinlock initialization
        sparc: Replace deprecated spinlock initialization
        mips: Replace deprecated spinlock initialization
        cris: Replace deprecated spinlock initialization
        alpha: Replace deprecated spinlock initialization
        rtmutex-tester: Remove BKL tests
      0586bed3
    • L
      Merge branch 'core-futexes-for-linus' of... · b80cd62b
      Linus Torvalds 提交于
      Merge branch 'core-futexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-futexes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        arm: Remove bogus comment in futex_atomic_cmpxchg_inatomic()
        futex: Deobfuscate handle_futex_death()
        plist: Add priority list test
        plist: Shrink struct plist_head
        futex,plist: Remove debug lock assignment from plist_node
        futex,plist: Pass the real head of the priority list to plist_del()
        futex: Sanitize futex ops argument types
        futex: Sanitize cmpxchg_futex_value_locked API
        futex: Remove redundant pagefault_disable in futex_atomic_cmpxchg_inatomic()
        futex: Avoid redudant evaluation of task_pid_vnr()
        futex: Update futex_wait_setup comments about locking
      b80cd62b
    • L
      Merge branch 'core-debugobjects-for-linus' of... · c345f60a
      Linus Torvalds 提交于
      Merge branch 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        debugobjects: Add hint for better object identification
      c345f60a
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 · 422e6c4b
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (57 commits)
        tidy the trailing symlinks traversal up
        Turn resolution of trailing symlinks iterative everywhere
        simplify link_path_walk() tail
        Make trailing symlink resolution in path_lookupat() iterative
        update nd->inode in __do_follow_link() instead of after do_follow_link()
        pull handling of one pathname component into a helper
        fs: allow AT_EMPTY_PATH in linkat(), limit that to CAP_DAC_READ_SEARCH
        Allow passing O_PATH descriptors via SCM_RIGHTS datagrams
        readlinkat(), fchownat() and fstatat() with empty relative pathnames
        Allow O_PATH for symlinks
        New kind of open files - "location only".
        ext4: Copy fs UUID to superblock
        ext3: Copy fs UUID to superblock.
        vfs: Export file system uuid via /proc/<pid>/mountinfo
        unistd.h: Add new syscalls numbers to asm-generic
        x86: Add new syscalls for x86_64
        x86: Add new syscalls for x86_32
        fs: Remove i_nlink check from file system link callback
        fs: Don't allow to create hardlink for deleted file
        vfs: Add open by file handle support
        ...
      422e6c4b
    • T
      VFS: Fix the nfs sillyrename regression in kernel 2.6.38 · c83ce989
      Trond Myklebust 提交于
      The new vfs locking scheme introduced in 2.6.38 breaks NFS sillyrename
      because the latter relies on being able to determine the parent
      directory of the dentry in the ->iput() callback in order to send the
      appropriate unlink rpc call.
      
      Looking at the code that cares about races with dput(), there doesn't
      seem to be anything that specifically uses d_parent as a test for
      whether or not there is a race:
        - __d_lookup_rcu(), __d_lookup() all test for d_hashed() after d_parent
        - shrink_dcache_for_umount() is safe since nothing else can rearrange
          the dentries in that super block.
        - have_submount(), select_parent() and d_genocide() can test for a
          deletion if we set the DCACHE_DISCONNECTED flag when the dentry
          is removed from the parent's d_subdirs list.
      Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
      Cc: stable@kernel.org (2.6.38, needs commit c826cb7d "dcache.c:
      	create helper function for duplicated functionality" )
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c83ce989
    • L
      dcache.c: create helper function for duplicated functionality · c826cb7d
      Linus Torvalds 提交于
      This creates a helper function for he "try to ascend into the parent
      directory" case, which was written out in triplicate before.  With all
      the locking and subtle sequence number stuff, we really don't want to
      duplicate that kind of code.
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c826cb7d
    • A
      tidy the trailing symlinks traversal up · 574197e0
      Al Viro 提交于
      * pull the handling of current->total_link_count into
      __do_follow_link()
      * put the common "do ->put_link() if needed and path_put() the link"
        stuff into a helper (put_link(nd, link, cookie))
      * rename __do_follow_link() to follow_link(), while we are at it
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      574197e0
    • A
      Turn resolution of trailing symlinks iterative everywhere · b356379a
      Al Viro 提交于
      The last remaining place (resolution of nested symlink) converted
      to the loop of the same kind we have in path_lookupat() and
      path_openat().
      
      Note that we still *do* have a recursion in pathname resolution;
      can't avoid it, really.  However, it's strictly for nested symlinks
      now - i.e. ones in the middle of a pathname.
      
      link_path_walk() has lost the tail now - it always walks everything
      except the last component.
      
      do_follow_link() renamed to nested_symlink() and moved down.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      b356379a
    • A
      simplify link_path_walk() tail · ce052544
      Al Viro 提交于
      Now that link_path_walk() is called without LOOKUP_PARENT
      only from do_follow_link(), we can simplify the checks in
      last component handling.  First of all, checking if we'd
      arrived to a directory is not needed - the caller will check
      it anyway.  And LOOKUP_FOLLOW is guaranteed to be there,
      since we only get to that place with nd->depth > 0.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      ce052544