31 Jul, 2012

30 commits

  • The current form of a KERN_ is "".

    Add printk_get_level and printk_skip_level functions to handle these
    formats.

    These functions centralize tests of KERN_ so a future modification
    can change the KERN_ style and shorten the number of bytes consumed
    by these headers.

    [akpm@linux-foundation.org: fix build error and warning]
    Signed-off-by: Joe Perches
    Cc: Kay Sievers
    Cc: Wu Fengguang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Reported-by: Andrew Morton
    Signed-off-by: Kay Sievers
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kay Sievers
     
  • Addresses https://bugzilla.kernel.org/show_bug.cgi?44431

    Reported-by:
    Signed-off-by: Alan Cox
    Cc: Pavan Savoy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • If argv_split() failed, the code will end up calling argv_free(NULL). Fix
    it up and clean things up a bit.

    Addresses Coverity report 703573.

    Cc: Cyrill Gorcunov
    Cc: Kees Cook
    Cc: Serge Hallyn
    Cc: "Eric W. Biederman"
    Cc: WANG Cong
    Cc: Alan Cox
    Cc: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • On the suspend/resume path the boot CPU does not go though an
    offline->online transition. This breaks the NMI detector post-resume
    since it depends on PMU state that is lost when the system gets
    suspended.

    Fix this by forcing a CPU offline->online transition for the lockup
    detector on the boot CPU during resume.

    To provide more context, we enable NMI watchdog on Chrome OS. We have
    seen several reports of systems freezing up completely which indicated
    that the NMI watchdog was not firing for some reason.

    Debugging further, we found a simple way of repro'ing system freezes --
    issuing the command 'tasket 1 sh -c "echo nmilockup > /proc/breakme"'
    after the system has been suspended/resumed one or more times.

    With this patch in place, the system freeze result in panics, as
    expected.

    These panics provide a nice stack trace for us to debug the actual issue
    causing the freeze.

    [akpm@linux-foundation.org: fiddle with code comment]
    [akpm@linux-foundation.org: make lockup_detector_bootcpu_resume() conditional on CONFIG_SUSPEND]
    [akpm@linux-foundation.org: fix section errors]
    Signed-off-by: Sameer Nanda
    Cc: Ingo Molnar
    Cc: Peter Zijlstra
    Cc: "Rafael J. Wysocki"
    Cc: Don Zickus
    Cc: Mandeep Singh Baines
    Cc: Srivatsa S. Bhat
    Cc: Anshuman Khandual
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sameer Nanda
     
  • panic_lock is meant to ensure that panic processing takes place only on
    one cpu; if any of the other cpus encounter a panic, they will spin
    waiting to be shut down.

    However, this causes a regression in this scenario:

    1. Cpu 0 encounters a panic and acquires the panic_lock
    and proceeds with the panic processing.
    2. There is an interrupt on cpu 0 that also encounters
    an error condition and invokes panic.
    3. This second invocation fails to acquire the panic_lock
    and enters the infinite while loop in panic_smp_self_stop.

    Thus all panic processing is stopped, and the cpu is stuck for eternity
    in the while(1) inside panic_smp_self_stop.

    To address this, disable local interrupts with local_irq_disable before
    acquiring the panic_lock. This will prevent interrupt handlers from
    executing during the panic processing, thus avoiding this particular
    problem.

    Signed-off-by: Vikram Mulukutla
    Reviewed-by: Stephen Boyd
    Cc: Michael Holzheu
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vikram Mulukutla
     
  • Fix the error

    arch/avr32/boards/atstk1000/atstk1002.c:100: error: 'num_partitions' undeclared here (not in a function)

    which was introduced by commit 1754aab9bb86 ("mtd: ATMEL, AVR32: inline
    nand partition table access ").

    Signed-off-by: Fengguang Wu
    Cc: Dmitry Eremin-Solenikov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fengguang Wu
     
  • clk_get() returns -ENOENT on error and some careless caller might
    dereference it without error checking:

    In mxc_rnga_remove():

    struct clk *clk = clk_get(&pdev->dev, "rng");

    // ...

    clk_disable(clk);

    Since it's insane to audit the lots of existing and future clk users,
    let's add a check in the callee to avoid kernel panic and warn about
    any buggy user.

    Cc: Russell King
    Cc: Paul Gortmaker
    Cc: Viresh Kumar
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fengguang Wu
     
  • mach-netx had its own implementation of clk routines like, clk_get{put},
    clk_enable{disable}, etc. And with introduction of following patchset:

    https://lkml.org/lkml/2012/4/24/154

    we get compilation error for multiple definition of these routines.

    Sascha had following suggestion to deal with it:

    http://www.spinics.net/lists/arm-kernel/msg179369.html

    So, remove this code completely.

    Signed-off-by: Viresh Kumar
    Reported-by: Paul Gortmaker
    Acked-by: Sascha Hauer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • With addition of dummy clk_*() calls for non CONFIG_HAVE_CLK cases in
    clk.h, there is no need to have clk code enclosed in #ifdef
    CONFIG_HAVE_CLK, #endif macros.

    Signed-off-by: Viresh Kumar
    Cc: Greg Kroah-Hartman
    Cc: Russell King
    Cc: Mike Turquette
    Cc: Sergei Shtylyov
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • With addition of dummy clk_*() calls for non CONFIG_HAVE_CLK cases in
    clk.h, there is no need to have clk code enclosed in #ifdef
    CONFIG_HAVE_CLK, #endif macros.

    Signed-off-by: Viresh Kumar
    Cc: Greg Kroah-Hartman
    Cc: Russell King
    Cc: Mike Turquette
    Cc: Sergei Shtylyov
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • With addition of dummy clk_*() calls for non CONFIG_HAVE_CLK cases in
    clk.h, there is no need to have clk code enclosed in #ifdef
    CONFIG_HAVE_CLK, #endif macros.

    Signed-off-by: Viresh Kumar
    Cc: Greg Kroah-Hartman
    Cc: Russell King
    Cc: Mike Turquette
    Cc: Sergei Shtylyov
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • With addition of dummy clk_*() calls for non CONFIG_HAVE_CLK cases in
    clk.h, there is no need to have clk code enclosed in #ifdef
    CONFIG_HAVE_CLK, #endif macros.

    This also fixes error paths of probe(), as a goto is required in this
    patch.

    Signed-off-by: Viresh Kumar
    Cc: Giuseppe Cavallaro
    Acked-by: David S. Miller
    Cc: Russell King
    Cc: Mike Turquette
    Cc: Sergei Shtylyov
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • With addition of dummy clk_*() calls for non CONFIG_HAVE_CLK cases in clk.h,
    there is no need to have clk code enclosed in #ifdef CONFIG_HAVE_CLK, #endif
    macros.

    Signed-off-by: Viresh Kumar
    Acked-by: David S. Miller
    Cc: Bhupesh Sharma
    Cc: Russell King
    Cc: Mike Turquette
    Cc: Sergei Shtylyov
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • With addition of dummy clk_*() calls for non CONFIG_HAVE_CLK cases in
    clk.h, there is no need to have clk code enclosed in #ifdef
    CONFIG_HAVE_CLK, #endif macros.

    Signed-off-by: Viresh Kumar
    Cc: Jeff Garzik
    Cc: Russell King
    Cc: Mike Turquette
    Cc: Sergei Shtylyov
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • With addition of dummy clk_*() calls for non CONFIG_HAVE_CLK cases in
    clk.h, there is no need to have clk code enclosed in #ifdef
    CONFIG_HAVE_CLK, #endif macros.

    musb also has these dummy macros defined locally. Remove them as they
    aren't required anymore.

    Signed-off-by: Viresh Kumar
    Acked-by: Jeff Garzik
    Cc: Greg Kroah-Hartman
    Cc: Russell King
    Cc: Mike Turquette
    Cc: Sergei Shtylyov
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • With addition of dummy clk_*() calls for non CONFIG_HAVE_CLK cases in
    clk.h, there is no need to have clk code enclosed in #ifdef
    CONFIG_HAVE_CLK, #endif macros.

    Marvell usb also has these dummy macros defined locally. Remove them as
    they aren't required anymore.

    Signed-off-by: Viresh Kumar
    Cc: Greg Kroah-Hartman
    Cc: Russell King
    Cc: Mike Turquette
    Cc: Sergei Shtylyov
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • With addition of dummy clk_*() calls for non CONFIG_HAVE_CLK cases in
    clk.h, there is no need to have clk code enclosed in #ifdef
    CONFIG_HAVE_CLK, #endif macros.

    pxa i2c also has these dummy macros defined locally. Remove them as they
    aren't required anymore.

    Signed-off-by: Viresh Kumar
    Acked-by: Wolfram Sang
    Cc: Russell King
    Cc: Mike Turquette
    Cc: Sergei Shtylyov
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • menu "Common Clock Framework" has "depends on COMMON_CLK" and so configs
    defined within menu don't require these "depends on COMMON_CLK again".

    Signed-off-by: Viresh Kumar
    Cc: Wolfram Sang
    Cc: Greg Kroah-Hartman
    Cc: Jeff Garzik
    Cc: Andrew Lunn
    Cc: Bhupesh Sharma
    Cc: Giuseppe Cavallaro
    Cc: Russell King
    Cc: Mike Turquette
    Cc: Sergei Shtylyov
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • Many drivers are shared between architectures that may or may not have
    HAVE_CLK selected for them. To remove compilation errors for them we
    enclose clk_*() calls in these drivers within #ifdef CONFIG_HAVE_CLK,
    #endif.

    This patch removes the need of these CONFIG_HAVE_CLK statements, by
    introducing dummy routines when HAVE_CLK is not selected by platforms.
    So, definition of these routines will always be available. These calls
    will return error for platforms that don't select HAVE_CLK.

    Signed-off-by: Viresh Kumar
    Cc: Wolfram Sang
    Cc: Greg Kroah-Hartman
    Cc: Jeff Garzik
    Cc: Andrew Lunn
    Cc: Bhupesh Sharma
    Cc: Giuseppe Cavallaro
    Cc: Russell King
    Cc: Mike Turquette
    Cc: Sergei Shtylyov
    Cc: viresh kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Viresh Kumar
     
  • Commits d065bd810b6d ("mm: retry page fault when blocking on disk
    transfer") and 37b23e0525d3 ("x86,mm: make pagefault killable")
    introduced changes into the x86 pagefault handler for making the page
    fault handler retryable as well as killable.

    These changes reduce the mmap_sem hold time, which is crucial during OOM
    killer invocation.

    Port these changes to AVR32.

    [akpm@linux-foundation.org: fix comment layout]
    Signed-off-by: Mohd. Faris
    Signed-off-by: Kautuk Consul
    Acked-by: Havard Skinnemoen
    Cc: Hans-Christian Egtvedt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kautuk Consul
     
  • There's a small group of odd looking includes in smc37c669.c. These
    includes appear to be if zero-ed out ever since they were added to the
    tree (in v2.1.89). Their purpose is unclear to me. Perhaps they were
    used in someones build system. Whatever their purpose was, nothing else
    uses something comparable. This entire if zero-ed out block might as well
    be removed.

    Signed-off-by: Paul Bolle
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Matt Turner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Bolle
     
  • Commits d065bd810b6d ("mm: retry page fault when blocking on disk
    transfer") and 37b23e0525d3 ("x86,mm: make pagefault killable")
    introduced changes into the x86 pagefault handler for making the page
    fault handler retryable as well as killable.

    These changes reduce the mmap_sem hold time, which is crucial during OOM
    killer invocation.

    Port these changes to xtensa.

    Signed-off-by: Kautuk Consul
    Acked-by: Chris Zankel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kautuk Consul
     
  • When suid_dumpable=2, detect unsafe core_pattern settings and warn when
    they are seen.

    Signed-off-by: Kees Cook
    Suggested-by: Andrew Morton
    Cc: Alexander Viro
    Cc: Alan Cox
    Cc: "Eric W. Biederman"
    Cc: Doug Ledford
    Cc: Serge Hallyn
    Cc: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • When the suid_dumpable sysctl is set to "2", and there is no core dump
    pipe defined in the core_pattern sysctl, a local user can cause core files
    to be written to root-writable directories, potentially with
    user-controlled content.

    This means an admin can unknowningly reintroduce a variation of
    CVE-2006-2451, allowing local users to gain root privileges.

    $ cat /proc/sys/fs/suid_dumpable
    2
    $ cat /proc/sys/kernel/core_pattern
    core
    $ ulimit -c unlimited
    $ cd /
    $ ls -l core
    ls: cannot access core: No such file or directory
    $ touch core
    touch: cannot touch `core': Permission denied
    $ OHAI="evil-string-here" ping localhost >/dev/null 2>&1 &
    $ pid=$!
    $ sleep 1
    $ kill -SEGV $pid
    $ ls -l core
    -rw------- 1 root kees 458752 Jun 21 11:35 core
    $ sudo strings core | grep evil
    OHAI=evil-string-here

    While cron has been fixed to abort reading a file when there is any
    parse error, there are still other sensitive directories that will read
    any file present and skip unparsable lines.

    Instead of introducing a suid_dumpable=3 mode and breaking all users of
    mode 2, this only disables the unsafe portion of mode 2 (writing to disk
    via relative path). Most users of mode 2 (e.g. Chrome OS) already use
    a core dump pipe handler, so this change will not break them. For the
    situations where a pipe handler is not defined but mode 2 is still
    active, crash dumps will only be written to fully qualified paths. If a
    relative path is defined (e.g. the default "core" pattern), dump
    attempts will trigger a printk yelling about the lack of a fully
    qualified path.

    Signed-off-by: Kees Cook
    Cc: Alexander Viro
    Cc: Alan Cox
    Cc: "Eric W. Biederman"
    Cc: Doug Ledford
    Cc: Serge Hallyn
    Cc: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • This allocation can be as large as 64k.

    - Add __GFP_NOWARN so the falied kmalloc() is silent

    - Fall back to vmalloc() if the kmalloc() failed

    Signed-off-by: Sasha Levin
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sasha Levin
     
  • ->delete_inode(), ->write_super_lockfs(), ->unlockfs() are gone so remove
    refereces to them in the NTFS code. Remove unnecessary comments about
    unimplemented methods while at it (suggested by Christoph Hellwig).

    Noticed while cleaning up the fsfreeze mess.

    Signed-off-by: Fernando Luis Vazquez Cao
    Cc: Anton Altaparmakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fernando Luis Vazquez Cao
     
  • Just setting the "error" to error number is enough on failure and It
    doesn't require to set "error" variable to zero in each switch case,
    since it was already initialized with zero. And also removed return 0
    in switch case with break statement

    Signed-off-by: Sasikantha babu
    Acked-by: Kees Cook
    Acked-by: Serge E. Hallyn
    Cc: Cyrill Gorcunov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sasikantha babu
     
  • efi_setup_pcdp_console() is called during boot to parse the HCDP/PCDP
    EFI system table and setup an early console for printk output. The
    routine uses ioremap/iounmap to setup access to the HCDP/PCDP table
    information.

    The call to ioremap is happening early in the boot process which leads
    to a panic on x86_64 systems:

    panic+0x01ca
    do_exit+0x043c
    oops_end+0x00a7
    no_context+0x0119
    __bad_area_nosemaphore+0x0138
    bad_area_nosemaphore+0x000e
    do_page_fault+0x0321
    page_fault+0x0020
    reserve_memtype+0x02a1
    __ioremap_caller+0x0123
    ioremap_nocache+0x0012
    efi_setup_pcdp_console+0x002b
    setup_arch+0x03a9
    start_kernel+0x00d4
    x86_64_start_reservations+0x012c
    x86_64_start_kernel+0x00fe

    This replaces the calls to ioremap/iounmap in efi_setup_pcdp_console()
    with calls to early_ioremap/early_iounmap which can be called during
    early boot.

    This patch was tested on an x86_64 prototype system which uses the
    HCDP/PCDP table for early console setup.

    Signed-off-by: Greg Pearson
    Acked-by: Khalid Aziz
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Greg Pearson
     
  • Commit a6bc32b89922 ("mm: compaction: introduce sync-light migration for
    use by compaction") changed the declaration of migrate_pages() and
    migrate_huge_pages().

    But it missed changing the argument of migrate_huge_pages() in
    soft_offline_huge_page(). In this case, we should call
    migrate_huge_pages() with MIGRATE_SYNC.

    Additionally, there is a mismatch between type the of argument and the
    function declaration for migrate_pages().

    Signed-off-by: Joonsoo Kim
    Cc: Christoph Lameter
    Cc: Mel Gorman
    Acked-by: David Rientjes
    Cc: "Aneesh Kumar K.V"
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joonsoo Kim
     

29 Jul, 2012

1 commit

  • Pull embedded i2c changes from Wolfram Sang:
    "Changes for the "embedded" part of the I2C subsystem:

    - lots of devicetree conversions of drivers (and preparations for
    that)
    - big cleanups for drivers for OMAP, Tegra, Nomadik, Blackfin
    - Rafael's struct dev_pm_ops conversion patches for I2C
    - usual driver cleanups and fixes

    All patches have been in linux-next for an apropriate time and all
    patches touching files outside of i2c-folders should have proper acks
    from the maintainers."

    * 'i2c-embedded/for-next' of git://git.pengutronix.de/git/wsa/linux: (60 commits)
    Revert "i2c: tegra: convert normal suspend/resume to *_noirq"
    I2C: MV64XYZ: Add Device Tree support
    i2c: stu300: use devm managed resources
    i2c: i2c-ocores: support for 16bit and 32bit IO
    V4L/DVB: mfd: use reg_shift instead of regstep
    i2c: i2c-ocores: Use reg-shift property
    i2c: i2c-ocores: DT bindings and minor fixes.
    i2c: mv64xxxx: remove EXPERIMENTAL tag
    i2c-s3c2410: Use plain pm_runtime_put()
    i2c: s3c2410: Fix pointer type passed to of_match_node()
    i2c: mxs: Set I2C timing registers for mxs-i2c
    i2c: i2c-bfin-twi: Move blackfin TWI register access Macro to head file.
    i2c: i2c-bfin-twi: Move TWI peripheral pin request array to platform data.
    i2c:i2c-bfin-twi: include twi head file
    i2c:i2c-bfin-twi: TWI fails to restart next transfer in high system load.
    i2c: i2c-bfin-twi: Tighten condition when failing I2C transfer if MEN bit is reset unexpectedly.
    i2c: i2c-bfin-twi: Break dead waiting loop if i2c device misbehaves.
    i2c: i2c-bfin-twi: Improve the patch for bug "Illegal i2c bus lock upon certain transfer scenarios".
    i2c: i2c-bfin-twi: Illegal i2c bus lock upon certain transfer scenarios.
    i2c-mv64xxxx: allow more than one driver instance
    ...

    Conflicts:
    drivers/i2c/busses/i2c-nomadik.c

    Linus Torvalds
     

28 Jul, 2012

9 commits

  • Pull networking fixes from David Miller:
    "Several bug fixes, some to new features appearing in this merge
    window, some that have been around for a while.

    I have a short list of known problems that need to be sorted out, but
    all of them can be solved easily during the run up to 3.6-final.

    I'll be offline until Sunday afternoon, but nothing need hold up
    3.6-rc1 and the close of the merge window, networking wise, at this
    point.

    1) Fix interface check in ipv4 TCP early demux, from Eric Dumazet.

    2) Fix a long standing bug in TCP DMA to userspace offload that can
    hang applications using MSG_TRUNC, from Jiri Kosina.

    3) Don't allow TCP_USER_TIMEOUT to be negative, from Hangbin Liu.

    4) Don't use GFP_KERNEL under spinlock in kaweth driver, from Dan
    Carpenter"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
    tcp: perform DMA to userspace only if there is a task waiting for it
    Revert "openvswitch: potential NULL deref in sample()"
    ipv4: fix TCP early demux
    net: fix rtnetlink IFF_PROMISC and IFF_ALLMULTI handling
    USB: kaweth.c: use GFP_ATOMIC under spin_lock
    tcp: Add TCP_USER_TIMEOUT negative value check
    bcma: add missing iounmap on error path
    bcma: fix regression in interrupt assignment on mips
    mac80211_hwsim: fix possible race condition in usage of info->control.sta & control.vif

    Linus Torvalds
     
  • Pull ext4 updates from Ted Ts'o:
    "The usual collection of bug fixes and optimizations. Perhaps of
    greatest note is a speed up for parallel, non-allocating DIO writes,
    since we no longer take the i_mutex lock in that case.

    For bug fixes, we fix an incorrect overhead calculation which caused
    slightly incorrect results for df(1) and statfs(2). We also fixed
    bugs in the metadata checksum feature."

    * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (23 commits)
    ext4: undo ext4_calc_metadata_amount if we fail to claim space
    ext4: don't let i_reserved_meta_blocks go negative
    ext4: fix hole punch failure when depth is greater than 0
    ext4: remove unnecessary argument from __ext4_handle_dirty_metadata()
    ext4: weed out ext4_write_super
    ext4: remove unnecessary superblock dirtying
    ext4: convert last user of ext4_mark_super_dirty() to ext4_handle_dirty_super()
    ext4: remove useless marking of superblock dirty
    ext4: fix ext4 mismerge back in January
    ext4: remove dynamic array size in ext4_chksum()
    ext4: remove unused variable in ext4_update_super()
    ext4: make quota as first class supported feature
    ext4: don't take the i_mutex lock when doing DIO overwrites
    ext4: add a new nolock flag in ext4_map_blocks
    ext4: split ext4_file_write into buffered IO and direct IO
    ext4: remove an unused statement in ext4_mb_get_buddy_page_lock()
    ext4: fix out-of-date comments in extents.c
    ext4: use s_csum_seed instead of i_csum_seed for xattr block
    ext4: use proper csum calculation in ext4_rename
    ext4: fix overhead calculation used by ext4_statfs()
    ...

    Linus Torvalds
     
  • Pull ARM updates from Russell King:
    "First ARM push of this merge window, post me coming back from holiday.
    This is what has been in linux-next for the last few weeks. Not much
    to say which isn't described by the commit summaries."

    * 'for-linus' of git://git.linaro.org/people/rmk/linux-arm: (32 commits)
    ARM: 7463/1: topology: Update cpu_power according to DT information
    ARM: 7462/1: topology: factorize the update of sibling masks
    ARM: 7461/1: topology: Add arch_scale_freq_power function
    ARM: 7456/1: ptrace: provide separate functions for tracing syscall {entry,exit}
    ARM: 7455/1: audit: move syscall auditing until after ptrace SIGTRAP handling
    ARM: 7454/1: entry: don't bother with syscall tracing on ret_from_fork path
    ARM: 7453/1: audit: only allow syscall auditing for pure EABI userspace
    ARM: 7452/1: delay: allow timer-based delay implementation to be selected
    ARM: 7451/1: arch timer: implement read_current_timer and get_cycles
    ARM: 7450/1: dcache: select DCACHE_WORD_ACCESS for little-endian ARMv6+ CPUs
    ARM: 7449/1: use generic strnlen_user and strncpy_from_user functions
    ARM: 7448/1: perf: remove arm_perf_pmu_ids global enumeration
    ARM: 7447/1: rwlocks: remove unused branch labels from trylock routines
    ARM: 7446/1: spinlock: use ticket algorithm for ARMv6+ locking implementation
    ARM: 7445/1: mm: update CONTEXTIDR register to contain PID of current process
    ARM: 7444/1: kernel: add arch-timer C3STOP feature
    ARM: 7460/1: remove asm/locks.h
    ARM: 7439/1: head.S: simplify initial page table mapping
    ARM: 7437/1: zImage: Allow DTB command line concatenation with ATAG_CMDLINE
    ARM: 7436/1: Do not map the vectors page as write-through on UP systems
    ...

    Linus Torvalds
     
  • Russell King
     
  • John W. Linville says:

    ====================
    These fixes are intended for the 3.6 stream.

    Hauke Mehrtens provides a pair of bcma fixes, one to fix a build
    regression on mips and another to correct a pair of missing iounmap
    calls.

    Thomas Huehn offers a mac80211_hwsim fix to avoid a possible
    use-after-free bug.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Back in 2006, commit 1a2449a87b ("[I/OAT]: TCP recv offload to I/OAT")
    added support for receive offloading to IOAT dma engine if available.

    The code in tcp_rcv_established() tries to perform early DMA copy if
    applicable. It however does so without checking whether the userspace
    task is actually expecting the data in the buffer.

    This is not a problem under normal circumstances, but there is a corner
    case where this doesn't work -- and that's when MSG_TRUNC flag to
    recvmsg() is used.

    If the IOAT dma engine is not used, the code properly checks whether
    there is a valid ucopy.task and the socket is owned by userspace, but
    misses the check in the dmaengine case.

    This problem can be observed in real trivially -- for example 'tbench' is a
    good reproducer, as it makes a heavy use of MSG_TRUNC. On systems utilizing
    IOAT, you will soon find tbench waiting indefinitely in sk_wait_data(), as they
    have been already early-copied in tcp_rcv_established() using dma engine.

    This patch introduces the same check we are performing in the simple
    iovec copy case to the IOAT case as well. It fixes the indefinite
    recvmsg(MSG_TRUNC) hangs.

    Signed-off-by: Jiri Kosina
    Signed-off-by: David S. Miller

    Jiri Kosina
     
  • This reverts commit 5b3e7e6cb5771bedda51cdb6f715d1da8cd9e644.

    The problem that the original commit was attempting to fix can
    never happen in practice because validation is done one a per-flow
    basis rather than a per-packet basis. Adding additional checks at
    runtime is unnecessary and inconsistent with the rest of the code.

    CC: Dan Carpenter
    Signed-off-by: Jesse Gross
    Signed-off-by: David S. Miller

    Jesse Gross
     
  • commit 92101b3b2e317 (ipv4: Prepare for change of rt->rt_iif encoding.)
    invalidated TCP early demux, because rx_dst_ifindex is not properly
    initialized and checked.

    Also remove the use of inet_iif(skb) in favor or skb->skb_iif

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • When device flags are set using rtnetlink, IFF_PROMISC and IFF_ALLMULTI
    flags are handled specially. Function dev_change_flags sets IFF_PROMISC and
    IFF_ALLMULTI bits in dev->gflags according to the passed value but
    do_setlink passes a result of rtnl_dev_combine_flags which takes those bits
    from dev->flags.

    This can be easily trigerred by doing:

    tcpdump -i eth0 &
    ip l s up eth0

    ip sets IFF_UP flag in ifi_flags and ifi_change, which is combined with
    IFF_PROMISC by rtnl_dev_combine_flags, causing __dev_change_flags to set
    IFF_PROMISC in gflags.

    Reported-by: Max Matveev
    Signed-off-by: Jiri Benc
    Signed-off-by: David S. Miller

    Jiri Benc