1. 12 6月, 2009 40 次提交
    • L
      Merge branch 'for-linus' of git://linux-arm.org/linux-2.6 · 512626a0
      Linus Torvalds 提交于
      * 'for-linus' of git://linux-arm.org/linux-2.6:
        kmemleak: Add the corresponding MAINTAINERS entry
        kmemleak: Simple testing module for kmemleak
        kmemleak: Enable the building of the memory leak detector
        kmemleak: Remove some of the kmemleak false positives
        kmemleak: Add modules support
        kmemleak: Add kmemleak_alloc callback from alloc_large_system_hash
        kmemleak: Add the vmalloc memory allocation/freeing hooks
        kmemleak: Add the slub memory allocation/freeing hooks
        kmemleak: Add the slob memory allocation/freeing hooks
        kmemleak: Add the slab memory allocation/freeing hooks
        kmemleak: Add documentation on the memory leak detector
        kmemleak: Add the base support
      
      Manual conflict resolution (with the slab/earlyboot changes) in:
      	drivers/char/vt.c
      	init/main.c
      	mm/slab.c
      512626a0
    • L
      Merge branch 'perfcounters-for-linus' of... · 8a1ca8ce
      Linus Torvalds 提交于
      Merge branch 'perfcounters-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'perfcounters-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (574 commits)
        perf_counter: Turn off by default
        perf_counter: Add counter->id to the throttle event
        perf_counter: Better align code
        perf_counter: Rename L2 to LL cache
        perf_counter: Standardize event names
        perf_counter: Rename enums
        perf_counter tools: Clean up u64 usage
        perf_counter: Rename perf_counter_limit sysctl
        perf_counter: More paranoia settings
        perf_counter: powerpc: Implement generalized cache events for POWER processors
        perf_counters: powerpc: Add support for POWER7 processors
        perf_counter: Accurate period data
        perf_counter: Introduce struct for sample data
        perf_counter tools: Normalize data using per sample period data
        perf_counter: Annotate exit ctx recursion
        perf_counter tools: Propagate signals properly
        perf_counter tools: Small frequency related fixes
        perf_counter: More aggressive frequency adjustment
        perf_counter/x86: Fix the model number of Intel Core2 processors
        perf_counter, x86: Correct some event and umask values for Intel processors
        ...
      8a1ca8ce
    • L
      Merge branch 'topic/slab/earlyboot' of... · b640f042
      Linus Torvalds 提交于
      Merge branch 'topic/slab/earlyboot' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6
      
      * 'topic/slab/earlyboot' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
        vgacon: use slab allocator instead of the bootmem allocator
        irq: use kcalloc() instead of the bootmem allocator
        sched: use slab in cpupri_init()
        sched: use alloc_cpumask_var() instead of alloc_bootmem_cpumask_var()
        memcg: don't use bootmem allocator in setup code
        irq/cpumask: make memoryless node zero happy
        x86: remove some alloc_bootmem_cpumask_var calling
        vt: use kzalloc() instead of the bootmem allocator
        sched: use kzalloc() instead of the bootmem allocator
        init: introduce mm_init()
        vmalloc: use kzalloc() instead of alloc_bootmem()
        slab: setup allocators earlier in the boot sequence
        bootmem: fix slab fallback on numa
        bootmem: use slab if bootmem is no longer available
      b640f042
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6 · 871fa907
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6:
        jfs: Add missing mutex_unlock call to error path
        missing unlock in jfs_quota_write()
      871fa907
    • L
      Merge branch 'x86-fixes-for-linus' of... · 7702667b
      Linus Torvalds 提交于
      Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: memtest: use pointers of equal type for comparison
      7702667b
    • O
      slow_work_thread() should do the exclusive wait · b415c49a
      Oleg Nesterov 提交于
      slow_work_thread() sleeps on slow_work_thread_wq without WQ_FLAG_EXCLUSIVE,
      this means that slow_work_enqueue()->__wake_up(nr_exclusive => 1) wakes up all
      kslowd threads.  This is not what we want, so we change slow_work_thread() to
      use prepare_to_wait_exclusive() instead.
      Signed-off-by: NOleg Nesterov <oleg@redhat.com>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b415c49a
    • L
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev · 6adc74b7
      Linus Torvalds 提交于
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        [libata] ata_piix: Enable parallel scan
        sata_nv: use hardreset only for post-boot probing
        [libata] ahci: Restore SB600 SATA controller 64 bit DMA
        ata_piix: Remove stale comment
        ata_piix: Turn on hotplugging support for older chips
        ahci: misc cleanups for EM stuff
        [libata] get rid of ATA_MAX_QUEUE loop in ata_qc_complete_multiple() v2
        sata_sil: enable 32-bit PIO
        sata_sx4: speed up ECC initialization
        libata-sff: avoid byte swapping in ata_sff_data_xfer()
        [libata] ahci: use less error-prone array initializers
      6adc74b7
    • L
      Merge branch 'for-2.6.31' of git://git.kernel.dk/linux-2.6-block · c9059598
      Linus Torvalds 提交于
      * 'for-2.6.31' of git://git.kernel.dk/linux-2.6-block: (153 commits)
        block: add request clone interface (v2)
        floppy: fix hibernation
        ramdisk: remove long-deprecated "ramdisk=" boot-time parameter
        fs/bio.c: add missing __user annotation
        block: prevent possible io_context->refcount overflow
        Add serial number support for virtio_blk, V4a
        block: Add missing bounce_pfn stacking and fix comments
        Revert "block: Fix bounce limit setting in DM"
        cciss: decode unit attention in SCSI error handling code
        cciss: Remove no longer needed sendcmd reject processing code
        cciss: change SCSI error handling routines to work with interrupts enabled.
        cciss: separate error processing and command retrying code in sendcmd_withirq_core()
        cciss: factor out fix target status processing code from sendcmd functions
        cciss: simplify interface of sendcmd() and sendcmd_withirq()
        cciss: factor out core of sendcmd_withirq() for use by SCSI error handling code
        cciss: Use schedule_timeout_uninterruptible in SCSI error handling code
        block: needs to set the residual length of a bidi request
        Revert "block: implement blkdev_readpages"
        block: Fix bounce limit setting in DM
        Removed reference to non-existing file Documentation/PCI/PCI-DMA-mapping.txt
        ...
      
      Manually fix conflicts with tracing updates in:
      	block/blk-sysfs.c
      	drivers/ide/ide-atapi.c
      	drivers/ide/ide-cd.c
      	drivers/ide/ide-floppy.c
      	drivers/ide/ide-tape.c
      	include/trace/events/block.h
      	kernel/trace/blktrace.c
      c9059598
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw · 0a33f80a
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (25 commits)
        GFS2: Merge gfs2_get_sb into gfs2_get_sb_meta
        GFS2: Fix cache coherency between truncate and O_DIRECT read
        GFS2: Fix locking issue mounting gfs2meta fs
        GFS2: Remove unused variable
        GFS2: smbd proccess hangs with flock() call.
        GFS2: Remove args subdir from gfs2 sysfs files
        GFS2: Remove lockstruct subdir from gfs2 sysfs files
        GFS2: Move gfs2_unlink_ok into ops_inode.c
        GFS2: Move gfs2_readlinki into ops_inode.c
        GFS2: Move gfs2_rmdiri into ops_inode.c
        GFS2: Merge mount.c and ops_super.c into super.c
        GFS2: Clean up some file names
        GFS2: Be more aggressive in reclaiming unlinked inodes
        GFS2: Add a rgrp bitmap full flag
        GFS2: Improve resource group error handling
        GFS2: Don't warn when delete inode fails on ro filesystem
        GFS2: Update docs
        GFS2: Umount recovery race fix
        GFS2: Remove a couple of unused sysfs entries
        GFS2: Add commit= mount option
        ...
      0a33f80a
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp · c29f5ec0
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: (26 commits)
        amd64_edac: add MAINTAINERS entry
        EDAC: do not enable modules by default
        amd64_edac: do not enable module by default
        amd64_edac: add module registration routines
        amd64_edac: add ECC reporting initializers
        amd64_edac: add EDAC core-related initializers
        amd64_edac: add error decoding logic
        amd64_edac: add ECC chipkill syndrome mapping table
        amd64_edac: add per-family descriptors
        amd64_edac: add F10h-and-later methods-p3
        amd64_edac: add F10h-and-later methods-p2
        amd64_edac: add F10h-and-later methods-p1
        amd64_edac: add k8-specific methods
        amd64_edac: assign DRAM chip select base and mask in a family-specific way
        amd64_edac: add helper to dump relevant registers
        amd64_edac: add DRAM address type conversion facilities
        amd64_edac: add functionality to compute the DRAM hole
        amd64_edac: add sys addr to memory controller mapping helpers
        amd64_edac: add memory scrubber interface
        amd64_edac: add MCA error types
        ...
      c29f5ec0
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 · d3d07d94
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (266 commits)
        sh: Tie sparseirq in to Kconfig.
        sh: Wire up sys_rt_tgsigqueueinfo.
        sh: Fix sys_pwritev() syscall table entry for sh32.
        sh: Fix sh4a llsc-based cmpxchg()
        sh: sh7724: Add JPU support
        sh: sh7724: INTC setting update
        sh: sh7722 clock framework rewrite
        sh: sh7366 clock framework rewrite
        sh: sh7343 clock framework rewrite
        sh: sh7724 clock framework rewrite V3
        sh: sh7723 clock framework rewrite V2
        sh: add enable()/disable()/set_rate() to div6 code
        sh: add AP325RXA mode pin configuration
        sh: add Migo-R mode pin configuration
        sh: sh7722 mode pin definitions
        sh: sh7724 mode pin comments
        sh: sh7723 mode pin V2
        sh: rework mode pin code
        sh: clock div6 helper code
        sh: clock div4 frequency table offset fix
        ...
      d3d07d94
    • L
      Merge branch 'kvm-updates/2.6.31' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 6cd8e300
      Linus Torvalds 提交于
      * 'kvm-updates/2.6.31' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (138 commits)
        KVM: Prevent overflow in largepages calculation
        KVM: Disable large pages on misaligned memory slots
        KVM: Add VT-x machine check support
        KVM: VMX: Rename rmode.active to rmode.vm86_active
        KVM: Move "exit due to NMI" handling into vmx_complete_interrupts()
        KVM: Disable CR8 intercept if tpr patching is active
        KVM: Do not migrate pending software interrupts.
        KVM: inject NMI after IRET from a previous NMI, not before.
        KVM: Always request IRQ/NMI window if an interrupt is pending
        KVM: Do not re-execute INTn instruction.
        KVM: skip_emulated_instruction() decode instruction if size is not known
        KVM: Remove irq_pending bitmap
        KVM: Do not allow interrupt injection from userspace if there is a pending event.
        KVM: Unprotect a page if #PF happens during NMI injection.
        KVM: s390: Verify memory in kvm run
        KVM: s390: Sanity check on validity intercept
        KVM: s390: Unlink vcpu on destroy - v2
        KVM: s390: optimize float int lock: spin_lock_bh --> spin_lock
        KVM: s390: use hrtimer for clock wakeup from idle - v2
        KVM: s390: Fix memory slot versus run - v3
        ...
      6cd8e300
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 · ddbb8684
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
        cifs: remove never-used in6_addr option
        cifs: add addr= mount option alias for ip=
        [CIFS] Add mention of new mount parm (forceuid) to cifs readme
        cifs: make overriding of ownership conditional on new mount options
        cifs: fix IPv6 address length check
        cifs: clean up set_cifs_acl interfaces
        cifs: reorganize get_cifs_acl
        [CIFS] Update readme to indicate change to default mount (serverino)
        cifs: make serverino the default when mounting
        cifs: rename cifs_iget to cifs_root_iget
        cifs: make cnvrtDosUnixTm take a little-endian args and an offset
        cifs: have cifs_NTtimeToUnix take a little-endian arg
        cifs: tighten up default file_mode/dir_mode
        cifs: fix artificial limit on reading symlinks
      ddbb8684
    • L
      Merge branch 'for-linus' of... · 3296ca27
      Linus Torvalds 提交于
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (44 commits)
        nommu: Provide mmap_min_addr definition.
        TOMOYO: Add description of lists and structures.
        TOMOYO: Remove unused field.
        integrity: ima audit dentry_open failure
        TOMOYO: Remove unused parameter.
        security: use mmap_min_addr indepedently of security models
        TOMOYO: Simplify policy reader.
        TOMOYO: Remove redundant markers.
        SELinux: define audit permissions for audit tree netlink messages
        TOMOYO: Remove unused mutex.
        tomoyo: avoid get+put of task_struct
        smack: Remove redundant initialization.
        integrity: nfsd imbalance bug fix
        rootplug: Remove redundant initialization.
        smack: do not beyond ARRAY_SIZE of data
        integrity: move ima_counts_get
        integrity: path_check update
        IMA: Add __init notation to ima functions
        IMA: Minimal IMA policy and boot param for TCB IMA policy
        selinux: remove obsolete read buffer limit from sel_read_bool
        ...
      3296ca27
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · e893123c
      Linus Torvalds 提交于
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (49 commits)
        ext4: Avoid corrupting the uninitialized bit in the extent during truncate
        ext4: Don't treat a truncation of a zero-length file as replace-via-truncate
        ext4: fix dx_map_entry to support 256k directory blocks
        ext4: truncate the file properly if we fail to copy data from userspace
        ext4: Avoid leaking blocks after a block allocation failure
        ext4: Change all super.c messages to print the device
        ext4: Get rid of EXTEND_DISKSIZE flag of ext4_get_blocks_handle()
        ext4: super.c whitespace cleanup
        jbd2: Fix minor typos in comments in fs/jbd2/journal.c
        ext4: Clean up calls to ext4_get_group_desc()
        ext4: remove unused function __ext4_write_dirty_metadata
        ext2: Fix memory leak in ext2_fill_super() in case of a failed mount
        ext3: Fix memory leak in ext3_fill_super() in case of a failed mount
        ext4: Fix memory leak in ext4_fill_super() in case of a failed mount
        ext4: down i_data_sem only for read when walking tree for fiemap
        ext4: Add a comprehensive block validity check to ext4_get_blocks()
        ext4: Clean up ext4_get_blocks() so it does not depend on bh_result->b_state
        ext4: Merge ext4_da_get_block_write() into mpage_da_map_blocks()
        ext4: Add BUG_ON debugging checks to noalloc_get_block_write()
        ext4: Add documentation to the ext4_*get_block* functions
        ...
      e893123c
    • L
      Merge branch 'for-2.6.31' of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 · 27951daa
      Linus Torvalds 提交于
      * 'for-2.6.31' of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (28 commits)
        ide-tape: fix debug call
        alim15x3: Remove historical hacks, re-enable init_hwif for PowerPC
        ide-dma: don't reset request fields on dma_timeout_retry()
        ide: drop rq->data handling from ide_map_sg()
        ide-atapi: kill unused fields and callbacks
        ide-tape: simplify read/write functions
        ide-tape: use byte size instead of sectors on rw issue functions
        ide-tape: unify r/w init paths
        ide-tape: kill idetape_bh
        ide-tape: use standard data transfer mechanism
        ide-tape: use single continuous buffer
        ide-atapi,tape,floppy: allow ->pc_callback() to change rq->data_len
        ide-tape,floppy: fix failed command completion after request sense
        ide-pm: don't abuse rq->data
        ide-cd,atapi: use bio for internal commands
        ide-atapi: convert ide-{floppy,tape} to using preallocated sense buffer
        ide-cd: convert to using generic sense request
        ide: add helpers for preparing sense requests
        ide-cd: don't abuse rq->buffer
        ide-atapi: don't abuse rq->buffer
        ...
      27951daa
    • P
      vgacon: use slab allocator instead of the bootmem allocator · b8ec7573
      Pekka Enberg 提交于
      Slab is initialized before the console subsystem so use the slab allocator in
      vgacon_scrollback_startup().
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      b8ec7573
    • P
      irq: use kcalloc() instead of the bootmem allocator · 22fb4e71
      Pekka Enberg 提交于
      Fixes the following problem:
      
      [    0.000000] Experimental hierarchical RCU init done.
      [    0.000000] NR_IRQS:4352 nr_irqs:256
      [    0.000000] ------------[ cut here ]------------
      [    0.000000] WARNING: at mm/bootmem.c:537 alloc_arch_preferred_bootmem+0x40/0x7e()
      [    0.000000] Hardware name: To Be Filled By O.E.M.
      [    0.000000] Pid: 0, comm: swapper Not tainted 2.6.30-tip-02161-g7a74539-dirty #59709
      [    0.000000] Call Trace:
      [    0.000000]  [<ffffffff823f8c8e>] ? alloc_arch_preferred_bootmem+0x40/0x7e
      [    0.000000]  [<ffffffff81067168>] warn_slowpath_common+0x88/0xcb
      [    0.000000]  [<ffffffff810671d2>] warn_slowpath_null+0x27/0x3d
      [    0.000000]  [<ffffffff823f8c8e>] alloc_arch_preferred_bootmem+0x40/0x7e
      [    0.000000]  [<ffffffff823f9307>] ___alloc_bootmem_nopanic+0x4e/0xec
      [    0.000000]  [<ffffffff823f93c5>] ___alloc_bootmem+0x20/0x61
      [    0.000000]  [<ffffffff823f962e>] __alloc_bootmem+0x1e/0x34
      [    0.000000]  [<ffffffff823f757c>] early_irq_init+0x6d/0x118
      [    0.000000]  [<ffffffff823e0140>] ? early_idt_handler+0x0/0x71
      [    0.000000]  [<ffffffff823e0cf7>] start_kernel+0x192/0x394
      [    0.000000]  [<ffffffff823e0140>] ? early_idt_handler+0x0/0x71
      [    0.000000]  [<ffffffff823e02ad>] x86_64_start_reservations+0xb4/0xcf
      [    0.000000]  [<ffffffff823e0000>] ? __init_begin+0x0/0x140
      [    0.000000]  [<ffffffff823e0420>] x86_64_start_kernel+0x158/0x17b
      [    0.000000] ---[ end trace a7919e7f17c0a725 ]---
      [    0.000000] Fast TSC calibration using PIT
      [    0.000000] Detected 2002.510 MHz processor.
      [    0.004000] Console: colour VGA+ 80x25
      Reported-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      22fb4e71
    • P
      sched: use slab in cpupri_init() · 0fb53029
      Pekka Enberg 提交于
      Lets not use the bootmem allocator in cpupri_init() as slab is already up when
      it is run.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      0fb53029
    • P
      sched: use alloc_cpumask_var() instead of alloc_bootmem_cpumask_var() · 4bdddf8f
      Pekka Enberg 提交于
      Slab is initialized when sched_init() runs now so lets use alloc_cpumask_var().
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      4bdddf8f
    • Y
      memcg: don't use bootmem allocator in setup code · 959982fe
      Yinghai Lu 提交于
      The bootmem allocator is no longer available for page_cgroup_init() because we
      set up the kernel slab allocator much earlier now.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      959982fe
    • Y
      irq/cpumask: make memoryless node zero happy · dad213ae
      Yinghai Lu 提交于
      Don't hardcode to node zero for early boot IRQ setup memory allocations.
      
      [ penberg@cs.helsinki.fi: minor cleanups ]
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      dad213ae
    • Y
      x86: remove some alloc_bootmem_cpumask_var calling · 38c7fed2
      Yinghai Lu 提交于
      Now that we set up the slab allocator earlier, we can get rid of some
      alloc_bootmem_cpumask_var() calls in boot code.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      38c7fed2
    • P
      vt: use kzalloc() instead of the bootmem allocator · a5f4f52e
      Pekka Enberg 提交于
      Now that kmem_cache_init() happens before console_init(), we should use
      kzalloc() and not the bootmem allocator.
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      a5f4f52e
    • P
      sched: use kzalloc() instead of the bootmem allocator · 36b7b6d4
      Pekka Enberg 提交于
      Now that kmem_cache_init() happens before sched_init(), we should use kzalloc()
      and not the bootmem allocator.
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      36b7b6d4
    • P
      init: introduce mm_init() · 444f478f
      Pekka Enberg 提交于
      As suggested by Christoph Lameter, introduce mm_init() now that we initialize
      all the kernel memory allocations together.
      
      Cc: Christoph Lameter <cl@linux-foundation.org>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      444f478f
    • P
      vmalloc: use kzalloc() instead of alloc_bootmem() · 43ebdac4
      Pekka Enberg 提交于
      We can call vmalloc_init() after kmem_cache_init() and use kzalloc() instead of
      the bootmem allocator when initializing vmalloc data structures.
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Acked-by: NNick Piggin <npiggin@suse.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      43ebdac4
    • P
      slab: setup allocators earlier in the boot sequence · 83b519e8
      Pekka Enberg 提交于
      This patch makes kmalloc() available earlier in the boot sequence so we can get
      rid of some bootmem allocations. The bulk of the changes are due to
      kmem_cache_init() being called with interrupts disabled which requires some
      changes to allocator boostrap code.
      
      Note: 32-bit x86 does WP protect test in mem_init() so we must setup traps
      before we call mem_init() during boot as reported by Ingo Molnar:
      
        We have a hard crash in the WP-protect code:
      
        [    0.000000] Checking if this processor honours the WP bit even in supervisor mode...BUG: Int 14: CR2 ffcff000
        [    0.000000]      EDI 00000188  ESI 00000ac7  EBP c17eaf9c  ESP c17eaf8c
        [    0.000000]      EBX 000014e0  EDX 0000000e  ECX 01856067  EAX 00000001
        [    0.000000]      err 00000003  EIP c10135b1   CS 00000060  flg 00010002
        [    0.000000] Stack: c17eafa8 c17fd410 c16747bc c17eafc4 c17fd7e5 000011fd f8616000 c18237cc
        [    0.000000]        00099800 c17bb000 c17eafec c17f1668 000001c5 c17f1322 c166e039 c1822bf0
        [    0.000000]        c166e033 c153a014 c18237cc 00020800 c17eaff8 c17f106a 00020800 01ba5003
        [    0.000000] Pid: 0, comm: swapper Not tainted 2.6.30-tip-02161-g7a74539-dirty #52203
        [    0.000000] Call Trace:
        [    0.000000]  [<c15357c2>] ? printk+0x14/0x16
        [    0.000000]  [<c10135b1>] ? do_test_wp_bit+0x19/0x23
        [    0.000000]  [<c17fd410>] ? test_wp_bit+0x26/0x64
        [    0.000000]  [<c17fd7e5>] ? mem_init+0x1ba/0x1d8
        [    0.000000]  [<c17f1668>] ? start_kernel+0x164/0x2f7
        [    0.000000]  [<c17f1322>] ? unknown_bootoption+0x0/0x19c
        [    0.000000]  [<c17f106a>] ? __init_begin+0x6a/0x6f
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Acked-by Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Christoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Matt Mackall <mpm@selenic.com>
      Cc: Nick Piggin <npiggin@suse.de>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      83b519e8
    • P
      bootmem: fix slab fallback on numa · c91c4773
      Pekka Enberg 提交于
      If the user requested bootmem allocation on a specific node, we should use
      kzalloc_node() for the fallback allocation.
      
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      c91c4773
    • P
      bootmem: use slab if bootmem is no longer available · 441c7e0a
      Pekka Enberg 提交于
      As a preparation for initializing the slab allocator early, make sure the
      bootmem allocator does not crash and burn if someone calls it after slab is up;
      otherwise we'd need a flag day for switching to early slab.
      Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Christoph Lameter <cl@linux-foundation.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Matt Mackall <mpm@selenic.com>
      Cc: Nick Piggin <npiggin@suse.de>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Signed-off-by: NPekka Enberg <penberg@cs.helsinki.fi>
      441c7e0a
    • C
      3aa27bbe
    • C
      kmemleak: Simple testing module for kmemleak · 0822ee4a
      Catalin Marinas 提交于
      This patch adds a loadable module that deliberately leaks memory. It
      is used for testing various memory leaking scenarios.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      0822ee4a
    • C
      kmemleak: Enable the building of the memory leak detector · 3bba00d7
      Catalin Marinas 提交于
      This patch adds the Kconfig.debug and Makefile entries needed for
      building kmemleak into the kernel.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      3bba00d7
    • C
      kmemleak: Remove some of the kmemleak false positives · 2e1483c9
      Catalin Marinas 提交于
      There are allocations for which the main pointer cannot be found but
      they are not memory leaks. This patch fixes some of them. For more
      information on false positives, see Documentation/kmemleak.txt.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      2e1483c9
    • C
      kmemleak: Add modules support · 4f2294b6
      Catalin Marinas 提交于
      This patch handles the kmemleak operations needed for modules loading so
      that memory allocations from inside a module are properly tracked.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      4f2294b6
    • C
      kmemleak: Add kmemleak_alloc callback from alloc_large_system_hash · dbb1f81c
      Catalin Marinas 提交于
      The alloc_large_system_hash function is called from various places in
      the kernel and it contains pointers to other allocated structures. It
      therefore needs to be traced by kmemleak.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      dbb1f81c
    • C
      kmemleak: Add the vmalloc memory allocation/freeing hooks · 89219d37
      Catalin Marinas 提交于
      This patch adds the callbacks to kmemleak_(alloc|free) functions from
      vmalloc/vfree.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      89219d37
    • C
      kmemleak: Add the slub memory allocation/freeing hooks · 06f22f13
      Catalin Marinas 提交于
      This patch adds the callbacks to kmemleak_(alloc|free) functions from the
      slub allocator.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Cc: Christoph Lameter <cl@linux-foundation.org>
      Reviewed-by: NPekka Enberg <penberg@cs.helsinki.fi>
      06f22f13
    • C
      kmemleak: Add the slob memory allocation/freeing hooks · 4374e616
      Catalin Marinas 提交于
      This patch adds the callbacks to kmemleak_(alloc|free) functions from the
      slob allocator.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Acked-by: NMatt Mackall <mpm@selenic.com>
      Acked-by: NPekka Enberg <penberg@cs.helsinki.fi>
      4374e616
    • C
      kmemleak: Add the slab memory allocation/freeing hooks · d5cff635
      Catalin Marinas 提交于
      This patch adds the callbacks to kmemleak_(alloc|free) functions from
      the slab allocator. The patch also adds the SLAB_NOLEAKTRACE flag to
      avoid recursive calls to kmemleak when it allocates its own data
      structures.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Reviewed-by: NPekka Enberg <penberg@cs.helsinki.fi>
      d5cff635