15 Sep, 2009

2 commits

  • * 'osync_cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:
    fsync: wait for data writeout completion before calling ->fsync
    vfs: Remove generic_osync_inode() and sync_page_range{_nolock}()
    fat: Opencode sync_page_range_nolock()
    pohmelfs: Use new syncing helper
    xfs: Convert sync_page_range() to simple filemap_write_and_wait_range()
    ocfs2: Update syncing after splicing to match generic version
    ntfs: Use new syncing helpers and update comments
    ext4: Remove syncing logic from ext4_file_write
    ext3: Remove syncing logic from ext3_file_write
    ext2: Update comment about generic_osync_inode
    vfs: Introduce new helpers for syncing after writing to O_SYNC file or IS_SYNC inode
    vfs: Rename generic_file_aio_write_nolock
    ocfs2: Use __generic_file_aio_write instead of generic_file_aio_write_nolock
    pohmelfs: Use __generic_file_aio_write instead of generic_file_aio_write_nolock
    vfs: Remove syncing from generic_file_direct_write() and generic_file_buffered_write()
    vfs: Export __generic_file_aio_write() and add some comments
    vfs: Introduce filemap_fdatawait_range

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1623 commits)
    netxen: update copyright
    netxen: fix tx timeout recovery
    netxen: fix file firmware leak
    netxen: improve pci memory access
    netxen: change firmware write size
    tg3: Fix return ring size breakage
    netxen: build fix for INET=n
    cdc-phonet: autoconfigure Phonet address
    Phonet: back-end for autoconfigured addresses
    Phonet: fix netlink address dump error handling
    ipv6: Add IFA_F_DADFAILED flag
    net: Add DEVTYPE support for Ethernet based devices
    mv643xx_eth.c: remove unused txq_set_wrr()
    ucc_geth: Fix hangs after switching from full to half duplex
    ucc_geth: Rearrange some code to avoid forward declarations
    phy/marvell: Make non-aneg speed/duplex forcing work for 88E1111 PHYs
    drivers/net/phy: introduce missing kfree
    drivers/net/wan: introduce missing kfree
    net: force bridge module(s) to be GPL
    Subject: [PATCH] appletalk: Fix skb leak when ipddp interface is not loaded
    ...

    Fixed up trivial conflicts:

    - arch/x86/include/asm/socket.h

    converted to in the x86 tree. The generic
    header has the same new #define's, so that works out fine.

    - drivers/net/tun.c

    fix conflict between 89f56d1e9 ("tun: reuse struct sock fields") that
    switched over to using 'tun->socket.sk' instead of the redundantly
    available (and thus removed) 'tun->sk', and 2b980dbd ("lsm: Add hooks
    to the TUN driver") which added a new 'tun->sk' use.

    Noted in 'next' by Stephen Rothwell.

    Linus Torvalds
     

14 Sep, 2009

1 commit

  • generic_file_aio_write_nolock() is now used only by block devices and raw
    character device. Filesystems should use __generic_file_aio_write() in case
    generic_file_aio_write() doesn't suit them. So rename the function to
    blkdev_aio_write() and move it to fs/blockdev.c.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jan Kara

    Christoph Hellwig
     

12 Sep, 2009

4 commits

  • …/git/tip/linux-2.6-tip

    * 'core-debug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    debug lockups: Improve lockup detection, fix generic arch fallback
    debug lockups: Improve lockup detection

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (102 commits)
    crypto: sha-s390 - Fix warnings in import function
    crypto: vmac - New hash algorithm for intel_txt support
    crypto: api - Do not displace newly registered algorithms
    crypto: ansi_cprng - Fix module initialization
    crypto: xcbc - Fix alignment calculation of xcbc_tfm_ctx
    crypto: fips - Depend on ansi_cprng
    crypto: blkcipher - Do not use eseqiv on stream ciphers
    crypto: ctr - Use chainiv on raw counter mode
    Revert crypto: fips - Select CPRNG
    crypto: rng - Fix typo
    crypto: talitos - add support for 36 bit addressing
    crypto: talitos - align locks on cache lines
    crypto: talitos - simplify hmac data size calculation
    crypto: mv_cesa - Add support for Orion5X crypto engine
    crypto: cryptd - Add support to access underlaying shash
    crypto: gcm - Use GHASH digest algorithm
    crypto: ghash - Add GHASH digest algorithm for GCM
    crypto: authenc - Convert to ahash
    crypto: api - Fix aligned ctx helper
    crypto: hmac - Prehash ipad/opad
    ...

    Linus Torvalds
     
  • * 'writeback' of git://git.kernel.dk/linux-2.6-block:
    writeback: check for registered bdi in flusher add and inode dirty
    writeback: add name to backing_dev_info
    writeback: add some debug inode list counters to bdi stats
    writeback: get rid of pdflush completely
    writeback: switch to per-bdi threads for flushing data
    writeback: move dirty inodes from super_block to backing_dev_info
    writeback: get rid of generic_sync_sb_inodes() export

    Linus Torvalds
     
  • * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (54 commits)
    [S390] tape: Use pr_xxx instead of dev_xxx in shared driver code
    [S390] Wire up page fault events for software perf counters.
    [S390] Remove smp_cpu_not_running.
    [S390] Get rid of cpuid.h header file.
    [S390] Limit cpu detection to 256 physical cpus.
    [S390] tape: Fix device online messages
    [S390] Enable guest page hinting by default.
    [S390] use generic scatterlist.h
    [S390] s390dbf: Add description for usage of "%s" in sprintf events
    [S390] Initialize __LC_THREAD_INFO early.
    [S390] fix recursive locking on page_table_lock
    [S390] kvm: use console_initcall() to initialize s390 virtio console
    [S390] tape: reversed order of labels
    [S390] hypfs: Use "%u" instead of "%d" for unsigned ints in snprintf
    [S390] kernel: Print an error message if kernel NSS cannot be defined
    [S390] zcrypt: Free ap_device if dev_set_name fails.
    [S390] zcrypt: Use spin_lock_bh in suspend callback
    [S390] xpram: Remove checksum validation for suspend/resume
    [S390] vmur: Invalid allocation sequence for vmur class
    [S390] hypfs: remove useless variable qname
    ...

    Linus Torvalds
     

11 Sep, 2009

3 commits


10 Sep, 2009

1 commit

  • When probing the device in tpm_tis_init the call request_locality
    uses timeout_a, which wasn't being initalized until after
    request_locality. This results in request_locality falsely timing
    out if the chip is still starting. Move the initialization to before
    request_locality.

    This probably only matters for embedded cases (ie mine), a BIOS likely
    gets the TPM into a state where this code path isn't necessary.

    Signed-off-by: Jason Gunthorpe
    Acked-by: Rajiv Andrade
    Signed-off-by: James Morris

    Jason Gunthorpe
     

08 Sep, 2009

1 commit


06 Sep, 2009

2 commits

  • The whole write-room thing is something that is up to the _caller_ to
    worry about, not the pty layer itself. The total buffer space will
    still be limited by the buffering routines themselves, so there is no
    advantage or need in having pty_write() artificially limit the size
    somehow.

    And what happened was that the caller (the n_tty line discipline, in
    this case) may have verified that there is room for 2 bytes to be
    written (for NL -> CRNL expansion), and it used to then do those writes
    as two single-byte writes. And if the first byte written (CR) then
    caused a new tty buffer to be allocated, pty_space() may have returned
    zero when trying to write the second byte (LF), and then incorrectly
    failed the write - leading to a lost newline character.

    This should finally fix

    http://bugzilla.kernel.org/show_bug.cgi?id=14015

    Reported-by: Mikael Pettersson
    Acked-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • When translating CR to CRNL in the n_tty line discipline, we did it as
    two tty_put_char() calls. Which works, but is stupid, and has caused
    problems before too with bad interactions with the write_room() logic.
    The generic USB serial driver had that problem, for example.

    Now the pty layer had similar issues after being moved to the generic
    tty buffering code (in commit d945cb9cce20ac7143c2de8d88b187f62db99bdc:
    "pty: Rework the pty layer to use the normal buffering logic").

    So stop doing the silly separate two writes, and do it as a single write
    instead. That's what the n_tty layer already does for the space
    expansion of tabs (XTABS), and it means that we'll now always have just
    a single write for the CRNL to match the single 'tty_write_room()' test,
    which hopefully means that the next time somebody screws up buffering,
    it won't cause weeks of debugging.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

03 Sep, 2009

1 commit


01 Sep, 2009

1 commit


26 Aug, 2009

1 commit

  • When I rewrote tty ldisc code to use proper reference counts (commits
    65b770468e98 and cbe9352fa08f) in order to avoid a race with hangup, the
    test-program that Eric Biederman used to trigger the original problem
    seems to have exposed another long-standing bug: the hangup code did the
    'tty_ldisc_halt()' to stop any buffer flushing activity, but unlike the
    other call sites it never actually flushed any pending work.

    As a result, if you get just the right timing, the pending work may be
    just about to execute (ie the timer has already triggered and thus
    cancel_delayed_work() was a no-op), when we then re-initialize the ldisc
    from under it.

    That, in turn, results in various random problems, usually seen as a
    NULL pointer dereference in run_timer_softirq() or a BUG() in
    worker_thread (but it can be almost anything).

    Fix it by adding the required 'flush_scheduled_work()' after doing the
    tty_ldisc_halt() (this also requires us to move the ldisc halt to before
    taking the ldisc mutex in order to avoid a deadlock with the workqueue
    executing do_tty_hangup, which requires the mutex).

    The locking should be cleaned up one day (the requirement to do this
    outside the ldisc_mutex is very annoying, and weakens the lock), but
    that's a larger and separate undertaking.

    Reported-by: Eric W. Biederman
    Tested-by: Xiaotian Feng
    Tested-by: Yanmin Zhang
    Tested-by: Dave Young
    Cc: Frederic Weisbecker
    Cc: Greg Kroah-Hartman
    Cc: Alan Cox
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

11 Aug, 2009

1 commit

  • Commit d945cb9cc ("pty: Rework the pty layer to use the normal buffering
    logic") dropped the test for 'tty->stopped' in pty_write_room(), which
    then causes the n_tty line discipline thing to not throttle the data
    properly when the tty is stopped.

    So instead of pausing the write due to the tty being stopped, the ldisc
    layer would go ahead and push it down to the pty. The pty write()
    routine would then refuse to take the data (because it _did_ check
    'stopped'), and the data wouldn't actually be written.

    This whole stopped test should eventually be moved into the tty ldisc
    layer rather than have low-level tty drivers care about these things,
    but right now the fix is to just re-instate the missing pty 'stopped'
    handling.

    Reported-and-tested-by: Artur Skawina
    Cc: Alan Cox
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

05 Aug, 2009

4 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6:
    tty-ldisc: be more careful in 'put_ldisc' locking
    tty-ldisc: turn ldisc user count into a proper refcount
    tty-ldisc: make refcount be atomic_t 'users' count

    Linus Torvalds
     
  • Use 'atomic_dec_and_lock()' to make sure that we always hold the
    tty_ldisc_lock when the ldisc count goes to zero. That way we can never
    race against 'tty_ldisc_try()' increasing the count again.

    Reported-by: OGAWA Hirofumi
    Signed-off-by: Linus Torvalds
    Tested-by: Sergey Senozhatsky
    Signed-off-by: Greg Kroah-Hartman

    Linus Torvalds
     
  • By using the user count for the actual lifetime rules, we can get rid of
    the silly "wait_for_idle" logic, because any busy ldisc will
    automatically stay around until the last user releases it. This avoids
    a host of odd issues, and simplifies the code.

    So now, when the last ldisc reference is dropped, we just release the
    ldisc operations struct reference, and free the ldisc.

    It looks obvious enough, and it does work for me, but the counting
    _could_ be off. It probably isn't (bad counting in the new version would
    generally imply that the old code did something really bad, like free an
    ldisc with a non-zero count), but it does need some testing, and
    preferably somebody looking at it.

    With this change, both 'tty_ldisc_put()' and 'tty_ldisc_deref()' are
    just aliases for the new ref-counting 'put_ldisc()'. Both of them
    decrement the ldisc user count and free it if it goes down to zero.
    They're identical functions, in other words.

    But the reason they still exist as sepate functions is that one of them
    was exported (tty_ldisc_deref) and had a stupid name (so I don't want to
    use it as the main name), and the other one was used in multiple places
    (and I didn't want to make the patch larger just to rename the users).

    In addition to the refcounting, I did do some minimal cleanup. For
    example, now "tty_ldisc_try()" actually returns the ldisc it got under
    the lock, rather than returning true/false and then the caller would
    look up the ldisc again (now without the protection of the lock).

    That said, there's tons of dubious use of 'tty->ldisc' without obviously
    proper locking or refcounting left. I expressly did _not_ want to try to
    fix it all, keeping the patch minimal. There may or may not be bugs in
    that kind of code, but they wouldn't be _new_ bugs.

    That said, even if the bugs aren't new, the timing and lifetime will
    change. For example, some silly code may depend on the 'tty->ldisc'
    pointer not changing because they hold a refcount on the 'ldisc'. And
    that's no longer true - if you hold a ref on the ldisc, the 'ldisc'
    itself is safe, but tty->ldisc may change.

    So the proper locking (remains) to hold tty->ldisc_mutex if you expect
    tty->ldisc to be stable. That's not really a _new_ rule, but it's an
    example of something that the old code might have unintentionally
    depended on and hidden bugs.

    Whatever. The patch _looks_ sensible to me. The only users of
    ldisc->users are:
    - get_ldisc() - atomically increment the count

    - put_ldisc() - atomically decrements the count and releases if zero

    - tty_ldisc_try_get() - creates the ldisc, and sets the count to 1.
    The ldisc should then either be released, or be attached to a tty.

    Signed-off-by: Linus Torvalds
    Tested-by: OGAWA Hirofumi
    Tested-by: Sergey Senozhatsky
    Acked-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Linus Torvalds
     
  • This is pure preparation of changing the ldisc reference counting to be
    a true refcount that defines the lifetime of the ldisc. But this is a
    purely syntactic change for now to make the next steps easier.

    This patch should make no semantic changes at all. But I wanted to make
    the ldisc refcount be an atomic (I will be touching it without locks
    soon enough), and I wanted to rename it so that there isn't quite as
    much confusion between 'ldo->refcount' (ldisk operations refcount) and
    'ld->refcount' (ldisc refcount itself) in the same file.

    So it's now an atomic 'ld->users' count. It still starts at zero,
    despite having a reference from 'tty->ldisc', but that will change once
    we turn it into a _real_ refcount.

    Signed-off-by: Linus Torvalds
    Tested-by: OGAWA Hirofumi
    Tested-by: Sergey Senozhatsky
    Acked-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Linus Torvalds
     

03 Aug, 2009

1 commit

  • As Andrew noted, my previous patch ("debug lockups: Improve lockup
    detection") broke/removed SysRq-L support from architecture that do
    not provide a __trigger_all_cpu_backtrace implementation.

    Restore a fallback path and clean up the SysRq-L machinery a bit:

    - Rename the arch method to arch_trigger_all_cpu_backtrace()

    - Simplify the define

    - Document the method a bit - in the hope of more architectures
    adding support for it.

    [ The patch touches Sparc code for the rename. ]

    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: "David S. Miller"
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

02 Aug, 2009

2 commits

  • Fix those compiler warnings, which indeed point to a bug:
    drivers/char/agp/parisc-agp.c:228: warning: initialization from incompatible pointer type
    drivers/char/agp/parisc-agp.c:201: warning: 'parisc_agp_page_mask_memory' defined but not used

    Signed-off-by: Helge Deller

    Helge Deller
     
  • When debugging a recent lockup bug i found various deficiencies
    in how our current lockup detection helpers work:

    - SysRq-L is not very efficient as it uses a workqueue, hence
    it cannot punch through hard lockups and cannot see through
    most soft lockups either.

    - The SysRq-L code depends on the NMI watchdog - which is off
    by default.

    - We dont print backtraces from the RCU code's built-in
    'RCU state machine is stuck' debug code. This debug
    code tends to be one of the first (and only) mechanisms
    that show that a lockup has occured.

    This patch changes the code so taht we:

    - Trigger the NMI backtrace code from SysRq-L instead of using
    a workqueue (which cannot punch through hard lockups)

    - Trigger print-all-CPU-backtraces from the RCU lockup detection
    code

    Also decouple the backtrace printing code from the NMI watchdog:

    - Dont use variable size cpumasks (it might not be initialized
    and they are a bit more fragile anyway)

    - Trigger an NMI immediately via an IPI, instead of waiting
    for the NMI tick to occur. This is a lot faster and can
    produce more relevant backtraces. It will also work if the
    NMI watchdog is disabled.

    - Dont print the 'dazed and confused' message when we print
    a backtrace from the NMI

    - Do a show_regs() plus a dump_stack() to get maximum info
    out of the dump. Worst-case we get two stacktraces - which
    is not a big deal. Sometimes, if register content is
    corrupted, the precise stack walker in show_regs() wont
    give us a full backtrace - in this case dump_stack() will
    do it.

    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Andrew Morton
    Cc: Linus Torvalds
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

30 Jul, 2009

3 commits

  • commit d6580a9f15238b87e618310c862231ae3f352d2d ("kexec: sysrq: simplify
    sysrq-c handler") changed the behavior of sysrq-c to unconditional
    dereference of NULL pointer. So in cases with CONFIG_KEXEC, where
    crash_kexec() was directly called from sysrq-c before, now it can be said
    that a step of "real oops" was inserted before starting kdump.

    However, in contrast to oops via SysRq-c from keyboard which results in
    panic due to in_interrupt(), oops via "echo c > /proc/sysrq-trigger" will
    not become panic unless panic_on_oops=1. It means that even if dump is
    properly configured to be taken on panic, the sysrq-c from proc interface
    might not start crashdump while the sysrq-c from keyboard can start
    crashdump. This confuses traditional users of kdump, i.e. people who
    expect sysrq-c to do common behavior in both of the keyboard and proc
    interface.

    This patch brings the keyboard and proc interface behavior of sysrq-c in
    line, by forcing panic_on_oops=1 before oops in sysrq-c handler.

    And some updates in documentation are included, to clarify that there is
    no longer dependency with CONFIG_KEXEC, and that now the system can just
    crash by sysrq-c if no dump mechanism is configured.

    Signed-off-by: Hidetoshi Seto
    Cc: Lai Jiangshan
    Cc: Ken'ichi Ohmichi
    Acked-by: Neil Horman
    Acked-by: Vivek Goyal
    Cc: Brayan Arraes
    Cc: Eric W. Biederman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hidetoshi Seto
     
  • * 'zero-length' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
    Remove zero-length file drivers/char/vr41xx_giu.c

    Linus Torvalds
     
  • We really don't want to mark the pty as a low-latency device, because as
    Alan points out, the ->write method can be called from an IRQ (ppp?),
    and that means we can't use ->low_latency=1 as we take mutexes in the
    low_latency case.

    So rather than using low_latency to force the written data to be pushed
    to the ldisc handling at 'write()' time, just make the reader side (or
    the poll function) do the flush when it checks whether there is data to
    be had.

    This also fixes the problem with lost data in an emacs compile buffer
    (bugzilla 13815), and we can thus revert the low_latency pty hack
    (commit 3a54297478e6578f96fd54bf4daa1751130aca86: "pty: quickfix for the
    pty ENXIO timing problems").

    Signed-off-by: OGAWA Hirofumi
    Tested-by: Aneesh Kumar K.V
    [ Modified to do the tty_flush_to_ldisc() inside input_available_p() so
    that it triggers for both read and poll() - Linus]
    Signed-off-by: Linus Torvalds

    OGAWA Hirofumi
     

29 Jul, 2009

1 commit


28 Jul, 2009

1 commit


21 Jul, 2009

3 commits

  • This function does not have an error return and returning an error is
    instead interpreted as having a lot of pending bytes.

    Reported by Jeff Harris who provided a list of some of the remaining
    offenders.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • If spin_lock_irqsave is called twice in a row with the same second
    argument, the interrupt state at the point of the second call overwrites
    the value saved by the first call. Indeed, the second call does not
    need to save the interrupt state, so it is changed to a simple
    spin_lock.

    The semantic match that finds this problem is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @@
    expression lock1,lock2;
    expression flags;
    @@

    *spin_lock_irqsave(lock1,flags)
    ... when != flags
    *spin_lock_irqsave(lock2,flags)
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Julia Lawall
     
  • The buffer for the consoles are unconditionally allocated at con_init()
    time, which miss the creation of the vcs(a) devices.

    Since 2.6.30 (commit 4995f8ef9d3aac72745e12419d7fbaa8d01b1d81, 'vcs:
    hook sysfs devices into object lifetime instead of "binding"' to be
    exact) these devices are no longer created at open() and removed on
    close(), but controlled by the lifetime of the buffers.

    Reported-by: Gerardo Exequiel Pozzi
    Tested-by: Gerardo Exequiel Pozzi
    Cc: stable@kernel.org
    Signed-off-by: Kay Sievers
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Kay Sievers
     

17 Jul, 2009

5 commits

  • Whoops.. fortunately not many people use this yet.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • If a tty in N_TTY mode with echo enabled manages to get itself into a state
    where
    - echo characters are pending
    - FASYNC is enabled
    - tty_write_wakeup is called from either
    - a device write path (pty)
    - an IRQ (serial)

    then it either deadlocks or explodes taking a mutex in the IRQ path.

    On the serial side it is almost impossible to reproduce because you have to
    go from a full serial port to a near empty one with echo characters
    pending. The pty case happens to have become possible to trigger using
    emacs and ptys, the pty changes having created a scenario which shows up
    this bug.

    The code path is

    n_tty:process_echoes() (takes mutex)
    tty_io:tty_put_char()
    pty:pty_write (or serial paths)
    tty_wakeup (from pty_write or serial IRQ)
    n_tty_write_wakeup()
    process_echoes()
    *KABOOM*

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Don't forget to drop a tty refererence on fail paths in
    receive_data().

    Signed-off-by: Jiri Slaby
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     
  • Bootmem is not used for the vt screen buffer anymore as slab is now
    available at the time the console is initialized.

    Get rid of the now superfluous distinction between slab and bootmem,
    it's always slab.

    This also fixes a kmalloc leak which Catalin described thusly:

    Commit a5f4f52e ("vt: use kzalloc() instead of the bootmem allocator")
    replaced the alloc_bootmem() with kzalloc() but didn't set vc_kmalloced to
    1 and the memory block is later leaked. The corresponding kmemleak trace:

    unreferenced object 0xdf828000 (size 8192):
    comm "swapper", pid 0, jiffies 4294937296
    backtrace:
    [] __save_stack_trace+0x17/0x1c
    [] log_early+0x55/0x84
    [] kmemleak_alloc+0x33/0x3c
    [] __kmalloc+0xd7/0xe4
    [] con_init+0xbf/0x1b8
    [] console_init+0x11/0x20
    [] start_kernel+0x137/0x1e4

    Signed-off-by: Johannes Weiner
    Reviewed-by: Pekka Enberg
    Tested-by: Catalin Marinas
    Signed-off-by: Andrew Morton
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • We can get a situation where a hangup occurs during or after a close. In
    that case the ldisc gets disposed of by the close and the hangup then
    explodes.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     

13 Jul, 2009

1 commit

  • * Remove smp_lock.h from files which don't need it (including some headers!)
    * Add smp_lock.h to files which do need it
    * Make smp_lock.h include conditional in hardirq.h
    It's needed only for one kernel_locked() usage which is under CONFIG_PREEMPT

    This will make hardirq.h inclusion cheaper for every PREEMPT=n config
    (which includes allmodconfig/allyesconfig, BTW)

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     

09 Jul, 2009

1 commit

  • Commit 5fd29d6ccbc98884569d6f3105aeca70858b3e0f ("printk: clean up
    handling of log-levels and newlines") changed printk semantics. printk
    lines with multiple KERN_ prefixes are no longer emitted as
    before the patch.

    is now included in the output on each additional use.

    Remove all uses of multiple KERN_s in formats.

    Signed-off-by: Joe Perches
    Signed-off-by: Linus Torvalds

    Joe Perches