25 May, 2009

1 commit


07 May, 2009

1 commit

  • With the removal of duplicate unpack_to_rootfs() (commit
    df52092f3c97788592ef72501a43fb7ac6a3cfe0) the messages displayed do not
    actually correspond to what the kernel is doing. In addition, depending
    if ramdisks are supported or not, the messages are not at all the same.

    So keep the messages more in sync with what is really doing the kernel,
    and only display a second message in case of failure. This also ensure
    that the printk message cannot be split by other printk's.

    Signed-off-by: Eric Piel
    Acked-by: H. Peter Anvin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Piel
     

17 Apr, 2009

1 commit

  • V3 of the early platform driver implementation.

    Platform drivers are great for embedded platforms because we can separate
    driver configuration from the actual driver. So base addresses,
    interrupts and other configuration can be kept with the processor or board
    code, and the platform driver can be reused by many different platforms.

    For early devices we have nothing today. For instance, to configure early
    timers and early serial ports we cannot use platform devices. This
    because the setup order during boot. Timers are needed before the
    platform driver core code is available. The same goes for early printk
    support. Early in this case means before initcalls.

    These early drivers today have their configuration either hard coded or
    they receive it using some special configuration method. This is working
    quite well, but if we want to support both regular kernel modules and
    early devices then we need to have two ways of configuring the same
    driver. A single way would be better.

    The early platform driver patch is basically a set of functions that allow
    drivers to register themselves and architecture code to locate them and
    probe. Registration happens through early_param(). The time for the
    probe is decided by the architecture code.

    See Documentation/driver-model/platform.txt for more details.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Magnus Damm
    Cc: Paul Mundt
    Cc: Kay Sievers
    Cc: David Brownell
    Cc: Tejun Heo
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Magnus Damm
     

14 Apr, 2009

2 commits

  • Change cb6ff208076b5f434db1b8c983429269d719cef5 ("NOMMU: Support XIP on
    initramfs") seems to have broken booting from initramfs with /sbin/init
    being a hardlink.

    It seems like the logic required for XIP on nommu, i.e. ftruncate to
    reported cpio header file size (body_len) is broken for hardlinks, which
    have a reported size of 0, and the truncate thus nukes the contents of the
    file (in my case busybox), making boot impossible and ending with runaway
    loop modprobe binfmt-0000 - and of course 0000 is not a valid binary
    format.

    My fix is to only call ftruncate if size is non-zero which fixes things
    for me, but I'm not certain whether this will break XIP for those files on
    nommu systems, although I would guess not.

    Signed-off-by: Randy Robertson
    Acked-by: David Howells
    Acked-by: Paul Mundt
    Acked-by: H. Peter Anvin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Robertson
     
  • init/initramfs.c:520: warning: 'clean_rootfs' defined but not used

    Signed-off-by: Nikanth Karthikesan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nikanth Karthikesan
     

11 Apr, 2009

1 commit

  • Make it possible for the linker to discard local symbols from vmlinux as
    they cause vmlinux to balloon when CONFIG_KALLSYMS=y and they cause
    dump_stack() and get_wchan() to produce useless information under some
    circumstances.

    With this we add a config option (CONFIG_STRIP_ASM_SYMS) that will cause
    the build to supply -X to the linker to tell it to strip temporary local
    symbols.

    This doesn't seem to cause gdb any problems.

    Signed-off-by: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    David Howells
     

07 Apr, 2009

3 commits

  • Largely inspired from ipc/ipc_sysctl.c. This patch isolates the mqueue
    sysctl stuff in its own file.

    [akpm@linux-foundation.org: build fix]
    Signed-off-by: Cedric Le Goater
    Signed-off-by: Nadia Derbey
    Signed-off-by: Serge E. Hallyn
    Cc: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     
  • Move mqueue vfsmount plus a few tunables into the ipc_namespace struct.
    The CONFIG_IPC_NS boolean and the ipc_namespace struct will serve both the
    posix message queue namespaces and the SYSV ipc namespaces.

    The sysctl code will be fixed separately in patch 3. After just this
    patch, making a change to posix mqueue tunables always changes the values
    in the initial ipc namespace.

    Signed-off-by: Cedric Le Goater
    Signed-off-by: Serge E. Hallyn
    Cc: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     
  • Make CONFIG_SLOW_WORK an automatic rather than manual config option so that
    people configuring their kernels don't have to make the choice. It can be
    selected automatically by those things that require it (such as FS-Cache).

    Signed-off-by: David Howells
    Acked-by: Jeff Garzik
    Acked-by: Kyle McMartin
    Signed-off-by: Linus Torvalds

    David Howells
     

06 Apr, 2009

1 commit

  • * 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)
    tracing, net: fix net tree and tracing tree merge interaction
    tracing, powerpc: fix powerpc tree and tracing tree interaction
    ring-buffer: do not remove reader page from list on ring buffer free
    function-graph: allow unregistering twice
    trace: make argument 'mem' of trace_seq_putmem() const
    tracing: add missing 'extern' keywords to trace_output.h
    tracing: provide trace_seq_reserve()
    blktrace: print out BLK_TN_MESSAGE properly
    blktrace: extract duplidate code
    blktrace: fix memory leak when freeing struct blk_io_trace
    blktrace: fix blk_probes_ref chaos
    blktrace: make classic output more classic
    blktrace: fix off-by-one bug
    blktrace: fix the original blktrace
    blktrace: fix a race when creating blk_tree_root in debugfs
    blktrace: fix timestamp in binary output
    tracing, Text Edit Lock: cleanup
    tracing: filter fix for TRACE_EVENT_FORMAT events
    ftrace: Using FTRACE_WARN_ON() to check "freed record" in ftrace_release()
    x86: kretprobe-booster interrupt emulation code fix
    ...

    Fix up trivial conflicts in
    arch/parisc/include/asm/ftrace.h
    include/linux/memory.h
    kernel/extable.c
    kernel/module.c

    Linus Torvalds
     

04 Apr, 2009

3 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)
    trivial: Update my email address
    trivial: NULL noise: drivers/mtd/tests/mtd_*test.c
    trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h
    trivial: Fix misspelling of "Celsius".
    trivial: remove unused variable 'path' in alloc_file()
    trivial: fix a pdlfush -> pdflush typo in comment
    trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL
    trivial: wusb: Storage class should be before const qualifier
    trivial: drivers/char/bsr.c: Storage class should be before const qualifier
    trivial: h8300: Storage class should be before const qualifier
    trivial: fix where cgroup documentation is not correctly referred to
    trivial: Give the right path in Documentation example
    trivial: MTD: remove EOL from MODULE_DESCRIPTION
    trivial: Fix typo in bio_split()'s documentation
    trivial: PWM: fix of #endif comment
    trivial: fix typos/grammar errors in Kconfig texts
    trivial: Fix misspelling of firmware
    trivial: cgroups: documentation typo and spelling corrections
    trivial: Update contact info for Jochen Hein
    trivial: fix typo "resgister" -> "register"
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-fscache: (41 commits)
    NFS: Add mount options to enable local caching on NFS
    NFS: Display local caching state
    NFS: Store pages from an NFS inode into a local cache
    NFS: Read pages from FS-Cache into an NFS inode
    NFS: nfs_readpage_async() needs to be accessible as a fallback for local caching
    NFS: Add read context retention for FS-Cache to call back with
    NFS: FS-Cache page management
    NFS: Add some new I/O counters for FS-Cache doing things for NFS
    NFS: Invalidate FsCache page flags when cache removed
    NFS: Use local disk inode cache
    NFS: Define and create inode-level cache objects
    NFS: Define and create superblock-level objects
    NFS: Define and create server-level objects
    NFS: Register NFS for caching and retrieve the top-level index
    NFS: Permit local filesystem caching to be enabled for NFS
    NFS: Add FS-Cache option bit and debug bit
    NFS: Add comment banners to some NFS functions
    FS-Cache: Make kAFS use FS-Cache
    CacheFiles: A cache that backs onto a mounted filesystem
    CacheFiles: Export things for CacheFiles
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://neil.brown.name/md: (53 commits)
    md/raid5 revise rules for when to update metadata during reshape
    md/raid5: minor code cleanups in make_request.
    md: remove CONFIG_MD_RAID_RESHAPE config option.
    md/raid5: be more careful about write ordering when reshaping.
    md: don't display meaningless values in sysfs files resync_start and sync_speed
    md/raid5: allow layout and chunksize to be changed on active array.
    md/raid5: reshape using largest of old and new chunk size
    md/raid5: prepare for allowing reshape to change layout
    md/raid5: prepare for allowing reshape to change chunksize.
    md/raid5: clearly differentiate 'before' and 'after' stripes during reshape.
    Documentation/md.txt update
    md: allow number of drives in raid5 to be reduced
    md/raid5: change reshape-progress measurement to cope with reshaping backwards.
    md: add explicit method to signal the end of a reshape.
    md/raid5: enhance raid5_size to work correctly with negative delta_disks
    md/raid5: drop qd_idx from r6_state
    md/raid6: move raid6 data processing to raid6_pq.ko
    md: raid5 run(): Fix max_degraded for raid level 4.
    md: 'array_size' sysfs attribute
    md: centralize ->array_sectors modifications
    ...

    Linus Torvalds
     

03 Apr, 2009

5 commits

  • Create a dynamically sized pool of threads for doing very slow work items, such
    as invoking mkdir() or rmdir() - things that may take a long time and may
    sleep, holding mutexes/semaphores and hogging a thread, and are thus unsuitable
    for workqueues.

    The number of threads is always at least a settable minimum, but more are
    started when there's more work to do, up to a limit. Because of the nature of
    the load, it's not suitable for a 1-thread-per-CPU type pool. A system with
    one CPU may well want several threads.

    This is used by FS-Cache to do slow caching operations in the background, such
    as looking up, creating or deleting cache objects.

    Signed-off-by: David Howells
    Acked-by: Serge Hallyn
    Acked-by: Steve Dickson
    Acked-by: Trond Myklebust
    Acked-by: Al Viro
    Tested-by: Daire Byrne

    David Howells
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
    Remove two unneeded exports and make two symbols static in fs/mpage.c
    Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225
    Trim includes of fdtable.h
    Don't crap into descriptor table in binfmt_som
    Trim includes in binfmt_elf
    Don't mess with descriptor table in load_elf_binary()
    Get rid of indirect include of fs_struct.h
    New helper - current_umask()
    check_unsafe_exec() doesn't care about signal handlers sharing
    New locking/refcounting for fs_struct
    Take fs_struct handling to new file (fs/fs_struct.c)
    Get rid of bumping fs_struct refcount in pivot_root(2)
    Kill unsharing fs_struct in __set_personality()

    Linus Torvalds
     
  • Allow cpusets to be configured/built on non-SMP systems

    Currently it's impossible to build cpusets under UML on x86-64, since
    cpusets depends on SMP and x86-64 UML doesn't support SMP.

    There's code in cpusets that doesn't depend on SMP. This patch surrounds
    the minimum amount of cpusets code with #ifdef CONFIG_SMP in order to
    allow cpusets to build/run on UP systems (for testing purposes under UML).

    Reviewed-by: Li Zefan
    Signed-off-by: Paul Menage
    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Menage
     
  • It's pointed out that swap_cgroup's message at swapon() is nonsense.
    Because

    * It can be calculated very easily if all necessary information is
    written in Kconfig.

    * It's not necessary to annoying people at every swapon().

    In other view, now, memory usage per swp_entry is reduced to 2bytes from
    8bytes(64bit) and I think it's reasonably small.

    Reported-by: Hugh Dickins
    Signed-off-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • initramfs uses printk without a linefeed, then does some work, then uses
    printk to finish the message off. However if some other code does a
    printk in between, then the messages get mixed together. Better for each
    message to be an independent line...

    Example of problem that this fixes:

    checking if image is initramfs...Switched to high resolution mode on CPU 1
    Switched to high resolution mode on CPU 0
    it is

    Signed-off-by: Simon Kitching
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Simon Kitching
     

02 Apr, 2009

1 commit


01 Apr, 2009

2 commits

  • Impact: Attribute function 'init_post' with __releases(...).

    Fix these sparse warnings:
    init/main.c:805:21: warning: context imbalance in 'init_post' - unexpected unlock
    init/main.c:899:9: warning: context imbalance in 'kernel_init' - wrong count at exit

    Signed-off-by: Hannes Eder
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hannes Eder
     
  • Don't pull it in sched.h; very few files actually need it and those
    can include directly. sched.h itself only needs forward declaration
    of struct fs_struct;

    Signed-off-by: Al Viro

    Al Viro
     

31 Mar, 2009

2 commits


30 Mar, 2009

4 commits

  • cgroup documentation was moved to Documentation/cgroups/. There are some
    places that still refer to Documentation/controllers/,
    Documentation/cgroups.txt and Documentation/cpusets.txt. Fix those.

    Signed-off-by: Thadeu Lima de Souza Cascardo
    Reviewed-by: Li Zefan
    Acked-by: Paul Menage
    Signed-off-by: Jiri Kosina

    Thadeu Lima de Souza Cascardo
     
  • Signed-off-by: Matt LaPlante
    Acked-by: Randy Dunlap
    Signed-off-by: Jiri Kosina

    Matt LaPlante
     
  • cpu_active_map is deprecated in favor of cpu_active_mask, which is
    const for safety: we use accessors now (set_cpu_active) is we really
    want to make a change.

    Signed-off-by: Rusty Russell

    Rusty Russell
     
  • Impact: cleanup

    (Thanks to Al Viro for reminding me of this, via Ingo)

    CPU_MASK_ALL is the (deprecated) "all bits set" cpumask, defined as so:

    #define CPU_MASK_ALL (cpumask_t) { { ... } }

    Taking the address of such a temporary is questionable at best,
    unfortunately 321a8e9d (cpumask: add CPU_MASK_ALL_PTR macro) added
    CPU_MASK_ALL_PTR:

    #define CPU_MASK_ALL_PTR (&CPU_MASK_ALL)

    Which formalizes this practice. One day gcc could bite us over this
    usage (though we seem to have gotten away with it so far).

    So replace everywhere which used &CPU_MASK_ALL or CPU_MASK_ALL_PTR
    with the modern "cpu_all_mask" (a real const struct cpumask *).

    Signed-off-by: Rusty Russell
    Acked-by: Ingo Molnar
    Reported-by: Al Viro
    Cc: Mike Travis

    Rusty Russell
     

29 Mar, 2009

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async-for-30:
    fastboot: remove duplicate unpack_to_rootfs()
    ide/net: flip the order of SATA and network init
    async: remove the temporary (2.6.29) "async is off by default" code

    Fix up conflicts in init/initramfs.c manually

    Linus Torvalds
     
  • we check if initrd is initramfs first and then do the real unpack. The check
    isn't required, we can directly do unpack. If the initrd isn't an
    initramfs, we can remove the garbage. In my laptop, this saves 0.1s boot
    time.

    This patch penalizes non-initramfs initrd case, but nowadays, initramfs is
    the most widely used method for initrds.

    Signed-off-by: Shaohua Li
    Acked-by: Arjan van de Ven
    Signed-off-by: Ingo Molnar

    Li, Shaohua
     

28 Mar, 2009

1 commit


26 Mar, 2009

1 commit

  • Impact: cpuset_wq should be initialized after init_workqueues()

    When I read /debugfs/tracing/trace_stat/workqueues,
    I got this:

    # CPU INSERTED EXECUTED NAME
    # | | | |

    0 0 0 cpuset
    0 285 285 events/0
    0 2 2 work_on_cpu/0
    0 1115 1115 khelper
    0 325 325 kblockd/0
    0 0 0 kacpid
    0 0 0 kacpi_notify
    0 0 0 ata/0
    0 0 0 ata_aux
    0 0 0 ksuspend_usbd
    0 0 0 aio/0
    0 0 0 nfsiod
    0 0 0 kpsmoused
    0 0 0 kstriped
    0 0 0 kondemand/0
    0 1 1 hid_compat
    0 0 0 rpciod/0

    1 64 64 events/1
    1 2 2 work_on_cpu/1
    1 5 5 kblockd/1
    1 0 0 ata/1
    1 0 0 aio/1
    1 0 0 kondemand/1
    1 0 0 rpciod/1

    I found "cpuset" is at the earliest.

    I found a create_singlethread_workqueue() is earlier than
    init_workqueues():

    kernel_init()
    ->cpuset_init_smp()
    ->create_singlethread_workqueue()
    ->do_basic_setup()
    ->init_workqueues()

    I think it's better that create_singlethread_workqueue() is called
    after workqueue subsystem has been initialized.

    Signed-off-by: Lai Jiangshan
    Acked-by: Steven Rostedt
    Acked-by: Frederic Weisbecker
    Cc: Paul Menage
    Cc: miaoxie
    Cc: Li Zefan
    Cc: Andrew Morton
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Lai Jiangshan
     

13 Mar, 2009

2 commits


11 Mar, 2009

1 commit

  • The COMPAT_BRK kconfig symbol does not depend on EMBEDDED, but it is in
    the midst of the EMBEDDED menu symbols, so it mucks up the EMBEDDED menu.
    Fix by moving it to just after all of the EMBEDDED menu symbols. Also,
    ANON_INODES has a similar problem, so move it to just above the EMBEDDED
    menu items since it is used in the EMBEDDED menu.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

06 Mar, 2009

2 commits


05 Mar, 2009

1 commit


04 Mar, 2009

2 commits


03 Mar, 2009

1 commit

  • This reverts commit 155b25bcc28631a5b5230191aa3f56c40dfffa3f, which was
    totally wrong - the "embedded" options still exists (very much so) even
    on non-embedded platforms.

    It's just that we don't bother with actually asking about them when
    we're not embedded, we just take their default values (which is usually
    'y' - the options add features that may not be worth it in a constrained
    environment).

    Noticed-by: Andrew Morton
    Cc: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Linus Torvalds