06 Dec, 2013

1 commit

  • The code to detect fragments in checksum_setup() was missing for IPv4 and
    too eager for IPv6. (It transpires that Windows seems to send IPv6 packets
    with a fragment header even if they are not a fragment - i.e. offset is zero,
    and M bit is not set).

    This patch also incorporates a fix to callers of maybe_pull_tail() where
    skb->network_header was being erroneously added to the length argument.

    Signed-off-by: Paul Durrant
    Signed-off-by: Zoltan Kiss
    Cc: Wei Liu
    Cc: Ian Campbell
    Cc: David Vrabel
    cc: David Miller
    Acked-by: Wei Liu
    Signed-off-by: David S. Miller

    Paul Durrant
     

03 Dec, 2013

6 commits

  • This reverts commit 018c5bba052b3a383d83cf0c756da0e7bc748397.

    It causes regressions for people using chips driven by the sungem
    driver. Suspicion is that the skb->csum value isn't being adjusted
    properly.

    The change also has a bug in that if __pskb_trim() fails, we'll leave
    a corruped skb->csum value in there. We would really need to revert
    it to it's original value in that case.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Modify tg3_chip_reset() and tg3_close() to check if the PCI network
    adapter device is accessible at all in order to skip poking it or
    trying to handle a carrier loss in vain when that's not the case.
    Introduce a special PCI helper function pci_device_is_present()
    for this purpose.

    Of course, this uncovers the lack of the appropriate RTNL locking
    in tg3_suspend() and tg3_resume(), so add that locking in there
    too.

    These changes prevent tg3 from burning a CPU at 100% load level for
    solid several seconds after the Thunderbolt link is disconnected from
    a Matrox DS1 docking station.

    Signed-off-by: Rafael J. Wysocki
    Acked-by: Michael Chan
    Signed-off-by: David S. Miller

    Rafael J. Wysocki
     
  • Pull irq fixes from Thomas Gleixner:
    - Correction of fuzzy and fragile IRQ_RETVAL macro
    - IRQ related resume fix affecting only XEN
    - ARM/GIC fix for chained GIC controllers

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irqchip: Gic: fix boot for chained gics
    irq: Enable all irqs unconditionally in irq_resume
    genirq: Correct fuzzy and fragile IRQ_RETVAL() definition

    Linus Torvalds
     
  • Pull scheduler fixes from Ingo Molnar:
    "Various smaller fixlets, all over the place"

    * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    sched/doc: Fix generation of device-drivers
    sched: Expose preempt_schedule_irq()
    sched: Fix a trivial typo in comments
    sched: Remove unused variable in 'struct sched_domain'
    sched: Avoid NULL dereference on sd_busy
    sched: Check sched_domain before computing group power
    MAINTAINERS: Update file patterns in the lockdep and scheduler entries

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "Misc kernel and tooling fixes"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    tools lib traceevent: Fix conversion of pointer to integer of different size
    perf/trace: Properly use u64 to hold event_id
    perf: Remove fragile swevent hlist optimization
    ftrace, perf: Avoid infinite event generation loop
    tools lib traceevent: Fix use of multiple options in processing field
    perf header: Fix possible memory leaks in process_group_desc()
    perf header: Fix bogus group name
    perf tools: Tag thread comm as overriden

    Linus Torvalds
     
  • Pull networking updates from David Miller:
    "Here is a pile of bug fixes that accumulated while I was in Europe"

    1) In fixing kernel leaks to userspace during copying of socket
    addresses, we broke a case that used to work, namely the user
    providing a buffer larger than the in-kernel generic socket address
    structure. This broke Ruby amongst other things. Fix from Dan
    Carpenter.

    2) Fix regression added by byte queue limit support in 8139cp driver,
    from Yang Yingliang.

    3) The addition of MSG_SENDPAGE_NOTLAST buggered up a few sendpage
    implementations, they should just treat it the same as MSG_MORE.
    Fix from Richard Weinberger and Shawn Landden.

    4) Handle icmpv4 errors received on ipv6 SIT tunnels correctly, from
    Oussama Ghorbel. In particular we should send an ICMPv6 unreachable
    in such situations.

    5) Fix some regressions in the recent genetlink fixes, in particular
    get the pmcraid driver to use the new safer interfaces correctly.
    From Johannes Berg.

    6) macvtap was converted to use a per-cpu set of statistics, but some
    code was still bumping tx_dropped elsewhere. From Jason Wang.

    7) Fix build failure of xen-netback due to missing include on some
    architectures, from Andy Whitecroft.

    8) macvtap double counts received packets in statistics, fix from Vlad
    Yasevich.

    9) Fix various cases of using *_STATS_BH() when *_STATS() is more
    appropriate. From Eric Dumazet and Hannes Frederic Sowa.

    10) Pktgen ipsec mode doesn't update the ipv4 header length and checksum
    properly after encapsulation. Fix from Fan Du.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (61 commits)
    net/mlx4_en: Remove selftest TX queues empty condition
    {pktgen, xfrm} Update IPv4 header total len and checksum after tranformation
    virtio_net: make all RX paths handle erors consistently
    virtio_net: fix error handling for mergeable buffers
    virtio_net: Fixed a trivial typo (fitler --> filter)
    netem: fix gemodel loss generator
    netem: fix loss 4 state model
    netem: missing break in ge loss generator
    net/hsr: Support iproute print_opt ('ip -details ...')
    net/hsr: Very small fix of comment style.
    MAINTAINERS: Added net/hsr/ maintainer
    ipv6: fix possible seqlock deadlock in ip6_finish_output2
    ixgbe: Make ixgbe_identify_qsfp_module_generic static
    ixgbe: turn NETIF_F_HW_L2FW_DOFFLOAD off by default
    ixgbe: ixgbe_fwd_ring_down needs to be static
    e1000: fix possible reset_task running after adapter down
    e1000: fix lockdep warning in e1000_reset_task
    e1000: prevent oops when adapter is being closed and reset simultaneously
    igb: Fixed Wake On LAN support
    inet: fix possible seqlock deadlocks
    ...

    Linus Torvalds
     

01 Dec, 2013

1 commit


29 Nov, 2013

4 commits

  • Currently retransmitted DATA chunks could also be used for
    RTT measurements since there are no flag to identify whether
    the transmitted DATA chunk is a new one or a retransmitted one.
    This problem is introduced by commit ae19c5486 ("sctp: remove
    'resent' bit from the chunk") which inappropriately removed the
    'resent' bit completely, instead of doing this, we should set
    the resent bit only for the retransmitted DATA chunks.

    Signed-off-by: Xufeng Zhang
    Acked-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Xufeng Zhang
     
  • The pmcraid driver is abusing the genetlink API and is using its
    family ID as the multicast group ID, which is invalid and may
    belong to somebody else (and likely will.)

    Make it use the correct API, but since this may already be used
    as-is by userspace, reserve a family ID for this code and also
    reserve that group ID to not break userspace assumptions.

    My previous patch broke event delivery in the driver as I missed
    that it wasn't using the right API and forgot to update it later
    in my series.

    While changing this, I noticed that the genetlink code could use
    the static group ID instead of a strcmp(), so also do that for
    the VFS_DQUOT family.

    Cc: Anil Ravindranath
    Cc: "James E.J. Bottomley"
    Signed-off-by: Johannes Berg
    Signed-off-by: David S. Miller

    Johannes Berg
     
  • The first netlink attribute (value 0) must always be defined as none/unspec.
    This is correctly done in inet_diag.h, but other diag interfaces are wrong.

    Because we cannot change an existing API, I add a comment to point the mistake
    and avoid to propagate it in a new diag API in the future.

    CC: Thomas Graf
    Signed-off-by: Nicolas Dichtel
    Acked-by: Thomas Graf
    Signed-off-by: David S. Miller

    Nicolas Dichtel
     
  • Pull GPIO fixes from Linus Walleij:
    "Here us a bunch of patches for the v3.13 series. Most important stuff
    is related to fixes and documentation for the new GPIO descriptor API.
    If the diffstat is scary you'll notice most of it is to
    Documentation/*:

    - A big slew of documentation for the gpiod transition that happened
    in the merge window, no semantic effect, but we should provide
    proper documentation with the new API.

    - Fix flags related to the new API.

    - Fix to the find_chip_by_name() lookup function related to the new
    API.

    - Fix of_find_gpio() when not using device tree.

    - Bug fix for the TB10x direction setting.

    - Error path fixes from Dan Carpenter.

    - Nasty IRQdomain bug relating to taking an unitialized spinlock.

    - Minor fixes here and there"

    * tag 'gpio-v3.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio: bcm281xx: Fix return value of bcm_kona_gpio_get()
    gpio: pl061: move irqdomain initialization
    gpio: ucb1400: Add MODULE_ALIAS
    gpiolib: fix of_find_gpio() when OF not defined
    gpio: fix memory leak in error path
    gpio: rcar: NULL dereference on error in probe()
    gpio: msm: make msm_gpio.summary_irq signed for error handling
    gpio: mvebu: make mvchip->irqbase signed for error handling
    gpiolib: use dedicated flags for GPIO properties
    gpiolib: fix find_chip_by_name()
    Documentation: gpiolib: document new interface
    gpio: tb10x: Set output value before setting direction to output

    Linus Torvalds
     

28 Nov, 2013

2 commits

  • Pull staging fixes from Greg KH:
    "Here are a number of staging, and IIO driver, fixes for 3.13-rc2 that
    resolve issues that have been reported for 3.13-rc1. All of these
    have been in linux-next for a bit this week"

    * tag 'staging-3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (25 commits)
    Staging: tidspbridge: disable driver
    staging: zsmalloc: Ensure handle is never 0 on success
    staging/lustre/ptlrpc: fix ptlrpc_stop_pinger logic
    staging: r8188eu: Fix AP mode
    Staging: btmtk_usb: Add hdev parameter to hdev->send driver callback
    Staging: go7007: fix up some remaining go->dev issues
    staging: imx-drm: Fix modular build of DRM_IMX_IPUV3
    staging: ft1000: fix use of potentially uninitialized variable
    Revert "staging:media: Use dev_dbg() instead of pr_debug()"
    Staging: zram: Fix memory leak by refcount mismatch
    staging: vt6656: [BUG] Fix for TX USB resets from vendors driver.
    staging: nvec: potential NULL dereference on error path
    Staging: vt6655-6: potential NULL dereference in hostap_disable_hostapd()
    staging: comedi: s626: fix value written by s626_set_dac()
    Staging: comedi: pcl730: fix some bitwise vs logical AND bugs
    staging: comedi: fix potentially uninitialised variable
    iio:accel:kxsd9 fix missing mutex unlock
    iio: adc: ti_am335x_adc: avoid double free of buffer.
    staging:iio: Fix hmc5843 Kconfig dependencies
    iio: Fix tcs3472 Kconfig dependencies
    ...

    Linus Torvalds
     
  • Pull ACPI and power management fixes from Rafael Wysocki:

    - Fix for a recent regression in the Tegra cpufreq driver causing
    excess error messages to be printed from Stephen Warren

    - ACPI-based device hotplug fix to prevent conflicting notify handlers
    from being installed for PCI host bridge objects. From Toshi Kani

    - ACPICA update to upstream version 20131115. This contains bug fixes
    mostly (loop termination fix for the get AML length function, fixes
    related to namespace node removal and debug output). From Bob Moore,
    Tomasz Nowicki and Lv Zheng

    - Removal of incorrect inclusions of internal ACPICA header files by
    non-ACPICA code from Lv Zheng

    - Fixes for the ACPI sysfs interface exposing tables to user space from
    Daisuke Hatayama and Jeremy Compostella

    - Assorted ACPI and cpufreq cleanups from Sachin Kamat and Al Stone

    - cpupower tool fix and man page from Thomas Renninger

    * tag 'pm+acpi-3.13-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI: Clean up incorrect inclusions of ACPICA headers
    tools: cpupower: fix wrong err msg not supported vs not available
    tools: cpupower: Add cpupower-idle-set(1) manpage
    ACPI / sysfs: Fix incorrect ACPI tables walk in acpi_tables_sysfs_init()
    ACPI / sysfs: Set file size for each exposed ACPI table
    ACPICA: Update version to 20131115.
    ACPICA: Add support to delete all objects attached to the root namespace node.
    ACPICA: Delete all attached data objects during namespace node deletion.
    ACPICA: Resources: Fix loop termination for the get AML length function.
    ACPICA: Tests: Add CHECKSUM_ABORT protection for test utilities.
    ACPICA: Debug output: Do not emit function nesting level for kernel build.
    ACPI / sleep: clean up compiler warning about uninitialized field
    cpufreq: exynos: Remove unwanted EXPORT_SYMBOL
    cpufreq: tegra: don't error target() when suspended
    ACPI / hotplug: Fix conflicted PCI bridge notify handlers

    Linus Torvalds
     

27 Nov, 2013

3 commits

  • …it/rostedt/linux-trace

    Pull tracing fixes from Steven Rostedt:
    "This includes two fixes.

    1) is a bug fix that happens when root does the following:

    echo function_graph > current_tracer
    modprobe foo
    echo nop > current_tracer

    This causes the ftrace internal accounting to get screwed up and
    crashes ftrace, preventing the user from using the function tracer
    after that.

    2) if a TRACE_EVENT has a string field, and NULL is given for it.

    The internal trace event code does a strlen() and strcpy() on the
    source of field. If it is NULL it causes the system to oops.

    This bug has been there since 2.6.31, but no TRACE_EVENT ever passed
    in a NULL to the string field, until now"

    * tag 'trace-fixes-v3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    ftrace: Fix function graph with loading of modules
    tracing: Allow events to have NULL strings

    Linus Torvalds
     
  • * acpica:
    ACPI: Clean up incorrect inclusions of ACPICA headers
    ACPICA: Update version to 20131115.
    ACPICA: Add support to delete all objects attached to the root namespace node.
    ACPICA: Delete all attached data objects during namespace node deletion.
    ACPICA: Resources: Fix loop termination for the get AML length function.
    ACPICA: Tests: Add CHECKSUM_ABORT protection for test utilities.
    ACPICA: Debug output: Do not emit function nesting level for kernel build.

    Rafael J. Wysocki
     
  • Pull ARM SoC fixes from Olof Johansson:
    "Mostly bugfixes and a few small code removals. Worth pointing out is:

    - A handful of more fixes to get DT enablement working properly on
    OMAP, finding new breakage of things that don't work quite right
    yet without the traditional board files. I expect a bit more of
    this to come in this release as people test on their hardware.
    - Implementation of power_down_finish() on vexpress, to make kexec
    work and to stop the MCPM core to produce a warning (the warning
    was new to 3.13-rc1).
    - A handful of minor fixes for various platforms"

    * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: bcm2835: add missing #xxx-cells to I2C nodes
    ARM: dts: Add max77686 RTC interrupt to cros5250-common
    ARM: vexpress/TC2: Implement MCPM power_down_finish()
    ARM: tegra: Provide dummy powergate implementation
    ARM: omap: fix warning with LPAE build
    ARM: OMAP2+: Remove legacy omap4_twl6030_hsmmc_init
    ARM: OMAP2+: Remove legacy mux code for display.c
    ARM: OMAP2+: Fix undefined reference to set_cntfreq
    gpio: twl4030: Fix passing of pdata in the device tree case
    gpio: twl4030: Fix regression for twl gpio output
    ARM: OMAP2+: More randconfig fixes for reconfigure_io_chain
    ARM: dts: imx6qdl: disable spdif "rxtx5" clock option
    ARM: dts: Fix omap2 specific dtsi files by adding the missing entries
    ARM: OMAP2+: Fix GPMC and simplify bootloader timings for 8250 and smc91x
    i2c: omap: Fix missing device tree flags for omap2

    Linus Torvalds
     

26 Nov, 2013

4 commits

  • If an TRACE_EVENT() uses __assign_str() or __get_str on a NULL pointer
    then the following oops will happen:

    BUG: unable to handle kernel NULL pointer dereference at (null)
    IP: [] strlen+0x10/0x1a
    *pde = 00000000 ^M
    Oops: 0000 [#1] PREEMPT SMP
    Modules linked in:
    CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.13.0-rc1-test+ #2
    Hardware name: /DG965MQ, BIOS MQ96510J.86A.0372.2006.0605.1717 06/05/2006^M
    task: f5cde9f0 ti: f5e5e000 task.ti: f5e5e000
    EIP: 0060:[] EFLAGS: 00210046 CPU: 1
    EIP is at strlen+0x10/0x1a
    EAX: 00000000 EBX: c2472da8 ECX: ffffffff EDX: c2472da8
    ESI: c1c5e5fc EDI: 00000000 EBP: f5e5fe84 ESP: f5e5fe80
    DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
    CR0: 8005003b CR2: 00000000 CR3: 01f32000 CR4: 000007d0
    Stack:
    f5f18b90 f5e5feb8 c10687a8 0759004f 00000005 00000005 00000005 00200046
    00000002 00000000 c1082a93 f56c7e28 c2472da8 c1082a93 f5e5fee4 c106bc61^M
    00000000 c1082a93 00000000 00000000 00000001 00200046 00200082 00000000
    Call Trace:
    [] ftrace_raw_event_lock+0x39/0xc0
    [] ? ktime_get+0x29/0x69
    [] ? ktime_get+0x29/0x69
    [] lock_release+0x57/0x1a5
    [] ? ktime_get+0x29/0x69
    [] read_seqcount_begin.constprop.7+0x4d/0x75
    [] ? ktime_get+0x29/0x69^M
    [] ktime_get+0x29/0x69
    [] __tick_nohz_idle_enter+0x1e/0x426
    [] ? lock_release_holdtime.part.19+0x48/0x4d
    [] ? time_hardirqs_off+0xe/0x28
    [] ? trace_hardirqs_off_caller+0x3f/0xaf
    [] tick_nohz_idle_enter+0x59/0x62
    [] cpu_startup_entry+0x64/0x192
    [] start_secondary+0x277/0x27c
    Code: 90 89 c6 89 d0 88 c4 ac 38 e0 74 09 84 c0 75 f7 be 01 00 00 00 89 f0 48 5e 5d c3 55 89 e5 57 66 66 66 66 90 83 c9 ff 89 c7 31 c0 ae f7 d1 8d 41 ff 5f 5d c3 55 89 e5 57 66 66 66 66 90 31 ff
    EIP: [] strlen+0x10/0x1a SS:ESP 0068:f5e5fe80
    CR2: 0000000000000000
    ---[ end trace 01bc47bf519ec1b2 ]---

    New tracepoints have been added that have allowed for NULL pointers
    being assigned to strings. To fix this, change the TRACE_EVENT() code
    to check for NULL and if it is, it will assign "(null)" to it instead
    (similar to what glibc printf does).

    Reported-by: Shuah Khan
    Reported-by: Jovi Zhangwei
    Link: http://lkml.kernel.org/r/CAGdX0WFeEuy+DtpsJzyzn0343qEEjLX97+o1VREFkUEhndC+5Q@mail.gmail.com
    Link: http://lkml.kernel.org/r/528D6972.9010702@samsung.com
    Fixes: 9cbf117662e2 ("tracing/events: provide string with undefined size support")
    Cc: stable@vger.kernel.org # 2.6.31+
    Signed-off-by: Steven Rostedt

    Steven Rostedt (Red Hat)
     
  • In order to support increased build test coverage for drivers, implement
    dummies for the powergate implementation. This will allow the drivers to
    be built without requiring support for Tegra to be selected.

    This patch solves the following build errors, which can be triggered in
    v3.13-rc1 by selecting DRM_TEGRA without ARCH_TEGRA:

    drivers/built-in.o: In function `gr3d_remove':
    drivers/gpu/drm/tegra/gr3d.c:321: undefined reference to `tegra_powergate_power_off'
    drivers/gpu/drm/tegra/gr3d.c:325: undefined reference to `tegra_powergate_power_off'
    drivers/built-in.o: In function `gr3d_probe':
    drivers/gpu/drm/tegra/gr3d.c:266: undefined reference to `tegra_powergate_sequence_power_up'
    drivers/gpu/drm/tegra/gr3d.c:273: undefined reference to `tegra_powergate_sequence_power_up'

    Signed-off-by: Thierry Reding
    [swarren, updated commit description]
    Signed-off-by: Stephen Warren
    Signed-off-by: Olof Johansson

    Thierry Reding
     
  • * acpi-hotplug:
    ACPI / hotplug: Fix conflicted PCI bridge notify handlers

    * acpi-sysfs:
    ACPI / sysfs: Fix incorrect ACPI tables walk in acpi_tables_sysfs_init()
    ACPI / sysfs: Set file size for each exposed ACPI table

    * acpi-sleep:
    ACPI / sleep: clean up compiler warning about uninitialized field

    Rafael J. Wysocki
     
  • …23/iio into staging-linus

    Jonathan writes:

    First round of fixes for IIO in the 3.13 cycle.

    The usual mixed bag of fixes.

    * 3 cases where kconfig dependencies were missing. We need to keep a closer
    eye on this in new drivers.

    * hid_sensors was abusing the iio_dev->trigger pointer. We had a round
    of clearing this out some time ago but this driver clearly slipped through.

    * A misuse of the IIO_ST macro, in mcp3422, which we should really make a
    concertive effort to finish removing.

    * Avoid a double free introduced by recent buffer reference counting in the
    one driver that (quite reasonably!) does things differently (am335x)

    * A missing mutex_unlock in kxsd9 that means that driver has been non
    functional for some time and no one noticed (including me who for once
    actually has one of the supported devices).

    * An incorrect assumption about the parameters of sign_extend32 in mcp3422.

    So nothing controversial. The only substantial patch is the hid_sensors
    one and that is actually just adding a new pointer to the devices private
    state then moving the code over to it.

    Greg Kroah-Hartman
     

25 Nov, 2013

2 commits

  • GPIO mapping properties were defined using the GPIOF_* flags, which are
    declared in linux/gpio.h. This file is not included when using the
    GPIO descriptor interface.

    This patch declares the flags that can be used as GPIO mappings
    properties in linux/gpio/driver.h, and uses them in gpiolib, so that no
    deprecated declarations are used by the GPIO descriptor interface.

    This patch also allows GPIO_OPEN_DRAIN and GPIO_OPEN_SOURCE to be
    specified as GPIO mapping properties.

    Signed-off-by: Alexandre Courbot
    Signed-off-by: Linus Walleij

    Alexandre Courbot
     
  • Fix kernel-doc warning for duplicate definition of 'kmalloc':

    Documentation/DocBook/kernel-api.xml:9483: element refentry: validity error : ID API-kmalloc already defined

    Also combine the kernel-doc info from the 2 kmalloc definitions into one
    block and remove the "see kcalloc" comment since kmalloc now contains the
    @flags info.

    Signed-off-by: Randy Dunlap
    Acked-by: Christoph Lameter
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

24 Nov, 2013

2 commits

  • Pull crypto update from Herbert Xu:
    - Made x86 ablk_helper generic for ARM
    - Phase out chainiv in favour of eseqiv (affects IPsec)
    - Fixed aes-cbc IV corruption on s390
    - Added constant-time crypto_memneq which replaces memcmp
    - Fixed aes-ctr in omap-aes
    - Added OMAP3 ROM RNG support
    - Add PRNG support for MSM SoC's
    - Add and use Job Ring API in caam
    - Misc fixes

    [ NOTE! This pull request was sent within the merge window, but Herbert
    has some questionable email sending setup that makes him public enemy
    #1 as far as gmail is concerned. So most of his emails seem to be
    trapped by gmail as spam, resulting in me not seeing them. - Linus ]

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (49 commits)
    crypto: s390 - Fix aes-cbc IV corruption
    crypto: omap-aes - Fix CTR mode counter length
    crypto: omap-sham - Add missing modalias
    padata: make the sequence counter an atomic_t
    crypto: caam - Modify the interface layers to use JR API's
    crypto: caam - Add API's to allocate/free Job Rings
    crypto: caam - Add Platform driver for Job Ring
    hwrng: msm - Add PRNG support for MSM SoC's
    ARM: DT: msm: Add Qualcomm's PRNG driver binding document
    crypto: skcipher - Use eseqiv even on UP machines
    crypto: talitos - Simplify key parsing
    crypto: picoxcell - Simplify and harden key parsing
    crypto: ixp4xx - Simplify and harden key parsing
    crypto: authencesn - Simplify key parsing
    crypto: authenc - Export key parsing helper function
    crypto: mv_cesa: remove deprecated IRQF_DISABLED
    hwrng: OMAP3 ROM Random Number Generator support
    crypto: sha256_ssse3 - also test for BMI2
    crypto: mv_cesa - Remove redundant of_match_ptr
    crypto: sahara - Remove redundant of_match_ptr
    ...

    Linus Torvalds
     
  • Commit bceaa90240b6019ed73b49965eac7d167610be69 ("inet: prevent leakage
    of uninitialized memory to user in recv syscalls") conditionally updated
    addr_len if the msg_name is written to. The recv_error and rxpmtu
    functions relied on the recvmsg functions to set up addr_len before.

    As this does not happen any more we have to pass addr_len to those
    functions as well and set it to the size of the corresponding sockaddr
    length.

    This broke traceroute and such.

    Fixes: bceaa90240b6 ("inet: prevent leakage of uninitialized memory to user in recv syscalls")
    Reported-by: Brad Spengler
    Reported-by: Tom Labanowski
    Cc: mpb
    Cc: David S. Miller
    Cc: Eric Dumazet
    Signed-off-by: Hannes Frederic Sowa
    Signed-off-by: David S. Miller

    Hannes Frederic Sowa
     

23 Nov, 2013

6 commits

  • Pull DRM fixes from Dave Airlie:
    "I was going to leave this until post -rc1 but sysfs fixes broke
    hotplug in userspace, so I had to fix it harder, otherwise a set of
    pulls from intel, radeon and vmware,

    The vmware/ttm changes are bit larger but since its early and they are
    unlikely to break anything else I put them in, it lets vmware work
    with dri3"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (36 commits)
    drm/sysfs: fix hotplug regression since lifetime changes
    drm/exynos: g2d: fix memory leak to userptr
    drm/i915: Fix gen3 self-refresh watermarks
    drm/ttm: Remove set_need_resched from the ttm fault handler
    drm/ttm: Don't move non-existing data
    drm/radeon: hook up backlight functions for CI and KV family.
    drm/i915: Replicate BIOS eDP bpp clamping hack for hsw
    drm/i915: Do not enable package C8 on unsupported hardware
    drm/i915: Hold pc8 lock around toggling pc8.gpu_idle
    drm/i915: encoder->get_config is no longer optional
    drm/i915/tv: add ->get_config callback
    drm/radeon/cik: Add macrotile mode array query
    drm/radeon/cik: Return backend map information to userspace
    drm/vmwgfx: Make vmwgfx dma buffers prime aware
    drm/vmwgfx: Make surfaces prime-aware
    drm/vmwgfx: Hook up the prime ioctls
    drm/ttm: Add a minimal prime implementation for ttm base objects
    drm/vmwgfx: Fix false lockdep warning
    drm/ttm: Allow execbuf util reserves without ticket
    drm/i915: restore the early forcewake cleanup
    ...

    Linus Torvalds
     
  • Pull PCI updates from Bjorn Helgaas:
    "Miscellaneous
    - Remove duplicate disable from pcie_portdrv_remove() (Yinghai Lu)
    - Fix whitespace, capitalization, and spelling errors (Bjorn Helgaas)"

    * tag 'pci-v3.13-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
    PCI: Remove duplicate pci_disable_device() from pcie_portdrv_remove()
    PCI: Fix whitespace, capitalization, and spelling errors

    Linus Torvalds
     
  • Pull SCSI target updates from Nicholas Bellinger:
    "Things have been quiet this round with mostly bugfixes, percpu
    conversions, and other minor iscsi-target conformance testing changes.

    The highlights include:

    - Add demo_mode_discovery attribute for iscsi-target (Thomas)
    - Convert tcm_fc(FCoE) to use percpu-ida pre-allocation
    - Add send completion interrupt coalescing for ib_isert
    - Convert target-core to use percpu-refcounting for se_lun
    - Fix mutex_trylock usage bug in iscsit_increment_maxcmdsn
    - tcm_loop updates (Hannes)
    - target-core ALUA cleanups + prep for v3.14 SCSI Referrals support (Hannes)

    v3.14 is currently shaping to be a busy development cycle in target
    land, with initial support for T10 Referrals and T10 DIF currently on
    the roadmap"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (40 commits)
    iscsi-target: chap auth shouldn't match username with trailing garbage
    iscsi-target: fix extract_param to handle buffer length corner case
    iscsi-target: Expose default_erl as TPG attribute
    target_core_configfs: split up ALUA supported states
    target_core_alua: Make supported states configurable
    target_core_alua: Store supported ALUA states
    target_core_alua: Rename ALUA_ACCESS_STATE_OPTIMIZED
    target_core_alua: spellcheck
    target core: rename (ex,im)plict -> (ex,im)plicit
    percpu-refcount: Add percpu-refcount.o to obj-y
    iscsi-target: Do not reject non-immediate CmdSNs exceeding MaxCmdSN
    iscsi-target: Convert iscsi_session statistics to atomic_long_t
    target: Convert se_device statistics to atomic_long_t
    target: Fix delayed Task Aborted Status (TAS) handling bug
    iscsi-target: Reject unsupported multi PDU text command sequence
    ib_isert: Avoid duplicate iscsit_increment_maxcmdsn call
    iscsi-target: Fix mutex_trylock usage in iscsit_increment_maxcmdsn
    target: Core does not need blkdev.h
    target: Pass through I/O topology for block backstores
    iser-target: Avoid using FRMR for single dma entry requests
    ...

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) Fix memory leaks and other issues in mwifiex driver, from Amitkumar
    Karwar.

    2) skb_segment() can choke on packets using frag lists, fix from
    Herbert Xu with help from Eric Dumazet and others.

    3) IPv4 output cached route instantiation properly handles races
    involving two threads trying to install the same route, but we
    forgot to propagate this logic to input routes as well. Fix from
    Alexei Starovoitov.

    4) Put protections in place to make sure that recvmsg() paths never
    accidently copy uninitialized memory back into userspace and also
    make sure that we never try to use more that sockaddr_storage for
    building the on-kernel-stack copy of a sockaddr. Fixes from Hannes
    Frederic Sowa.

    5) R8152 driver transmit flow bug fixes from Hayes Wang.

    6) Fix some minor fallouts from genetlink changes, from Johannes Berg
    and Michael Opdenacker.

    7) AF_PACKET sendmsg path can race with netdevice unregister notifier,
    fix by using RCU to make sure the network device doesn't go away
    from under us. Fix from Daniel Borkmann.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (43 commits)
    gso: handle new frag_list of frags GRO packets
    genetlink: fix genl_set_err() group ID
    genetlink: fix genlmsg_multicast() bug
    packet: fix use after free race in send path when dev is released
    xen-netback: stop the VIF thread before unbinding IRQs
    wimax: remove dead code
    net/phy: Add the autocross feature for forced links on VSC82x4
    net/phy: Add VSC8662 support
    net/phy: Add VSC8574 support
    net/phy: Add VSC8234 support
    net: add BUG_ON if kernel advertises msg_namelen > sizeof(struct sockaddr_storage)
    net: rework recvmsg handler msg_name and msg_namelen logic
    bridge: flush br's address entry in fdb when remove the
    net: core: Always propagate flag changes to interfaces
    ipv4: fix race in concurrent ip_route_input_slow()
    r8152: fix incorrect type in assignment
    r8152: support stopping/waking tx queue
    r8152: modify the tx flow
    r8152: fix tx/rx memory overflow
    netfilter: ebt_ip6: fix source and destination matching
    ...

    Linus Torvalds
     
  • Pull btrfs fixes from Chris Mason:
    "Almost all of these are bug fixes. Dave Sterba's documentation update
    is the big exception because he removed our promises to set any
    machine running Btrfs on fire"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    Documentation: filesystems: update btrfs tools section
    Documentation: filesystems: add new btrfs mount options
    btrfs: update kconfig help text
    btrfs: fix bio_size_ok() for max_sectors > 0xffff
    btrfs: Use trace condition for get_extent tracepoint
    btrfs: fix typo in the log message
    Btrfs: fix list delete warning when removing ordered root from the list
    Btrfs: print bytenr instead of page pointer in check-int
    Btrfs: remove dead codes from ctree.h
    Btrfs: don't wait for ordered data outside desired range
    Btrfs: fix lockdep error in async commit
    Btrfs: avoid heavy operations in btrfs_commit_super
    Btrfs: fix __btrfs_start_workers retval
    Btrfs: disable online raid-repair on ro mounts
    Btrfs: do not inc uncorrectable_errors counter on ro scrubs
    Btrfs: only drop modified extents if we logged the whole inode
    Btrfs: make sure to copy everything if we rename
    Btrfs: don't BUG_ON() if we get an error walking backrefs

    Linus Torvalds
     
  • Pull SLAB changes from Pekka Enberg:
    "The patches from Joonsoo Kim switch mm/slab.c to use 'struct page' for
    slab internals similar to mm/slub.c. This reduces memory usage and
    improves performance:

    https://lkml.org/lkml/2013/10/16/155

    Rest of the changes are bug fixes from various people"

    * 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux: (21 commits)
    mm, slub: fix the typo in mm/slub.c
    mm, slub: fix the typo in include/linux/slub_def.h
    slub: Handle NULL parameter in kmem_cache_flags
    slab: replace non-existing 'struct freelist *' with 'void *'
    slab: fix to calm down kmemleak warning
    slub: proper kmemleak tracking if CONFIG_SLUB_DEBUG disabled
    slab: rename slab_bufctl to slab_freelist
    slab: remove useless statement for checking pfmemalloc
    slab: use struct page for slab management
    slab: replace free and inuse in struct slab with newly introduced active
    slab: remove SLAB_LIMIT
    slab: remove kmem_bufctl_t
    slab: change the management method of free objects of the slab
    slab: use __GFP_COMP flag for allocating slab pages
    slab: use well-defined macro, virt_to_slab()
    slab: overloading the RCU head over the LRU for RCU free
    slab: remove cachep in struct slab_rcu
    slab: remove nodeid in struct slab
    slab: remove colouroff in struct slab
    slab: change return type of kmem_getpages() to struct page
    ...

    Linus Torvalds
     

22 Nov, 2013

8 commits

  • Merge patches from Andrew Morton:
    "13 fixes"

    * emailed patches from Andrew Morton :
    mm: place page->pmd_huge_pte to right union
    MAINTAINERS: add keyboard driver to Hyper-V file list
    x86, mm: do not leak page->ptl for pmd page tables
    ipc,shm: correct error return value in shmctl (SHM_UNLOCK)
    mm, mempolicy: silence gcc warning
    block/partitions/efi.c: fix bound check
    ARM: drivers/rtc/rtc-at91rm9200.c: disable interrupts at shutdown
    mm: hugetlbfs: fix hugetlbfs optimization
    kernel: remove CONFIG_USE_GENERIC_SMP_HELPERS cleanly
    ipc,shm: fix shm_file deletion races
    mm: thp: give transparent hugepage code a separate copy_page
    checkpatch: fix "Use of uninitialized value" warnings
    configfs: fix race between dentry put and lookup

    Linus Torvalds
     
  • Pull security subsystem updates from James Morris:
    "In this patchset, we finally get an SELinux update, with Paul Moore
    taking over as maintainer of that code.

    Also a significant update for the Keys subsystem, as well as
    maintenance updates to Smack, IMA, TPM, and Apparmor"

    and since I wanted to know more about the updates to key handling,
    here's the explanation from David Howells on that:

    "Okay. There are a number of separate bits. I'll go over the big bits
    and the odd important other bit, most of the smaller bits are just
    fixes and cleanups. If you want the small bits accounting for, I can
    do that too.

    (1) Keyring capacity expansion.

    KEYS: Consolidate the concept of an 'index key' for key access
    KEYS: Introduce a search context structure
    KEYS: Search for auth-key by name rather than target key ID
    Add a generic associative array implementation.
    KEYS: Expand the capacity of a keyring

    Several of the patches are providing an expansion of the capacity of a
    keyring. Currently, the maximum size of a keyring payload is one page.
    Subtract a small header and then divide up into pointers, that only gives
    you ~500 pointers on an x86_64 box. However, since the NFS idmapper uses
    a keyring to store ID mapping data, that has proven to be insufficient to
    the cause.

    Whatever data structure I use to handle the keyring payload, it can only
    store pointers to keys, not the keys themselves because several keyrings
    may point to a single key. This precludes inserting, say, and rb_node
    struct into the key struct for this purpose.

    I could make an rbtree of records such that each record has an rb_node
    and a key pointer, but that would use four words of space per key stored
    in the keyring. It would, however, be able to use much existing code.

    I selected instead a non-rebalancing radix-tree type approach as that
    could have a better space-used/key-pointer ratio. I could have used the
    radix tree implementation that we already have and insert keys into it by
    their serial numbers, but that means any sort of search must iterate over
    the whole radix tree. Further, its nodes are a bit on the capacious side
    for what I want - especially given that key serial numbers are randomly
    allocated, thus leaving a lot of empty space in the tree.

    So what I have is an associative array that internally is a radix-tree
    with 16 pointers per node where the index key is constructed from the key
    type pointer and the key description. This means that an exact lookup by
    type+description is very fast as this tells us how to navigate directly to
    the target key.

    I made the data structure general in lib/assoc_array.c as far as it is
    concerned, its index key is just a sequence of bits that leads to a
    pointer. It's possible that someone else will be able to make use of it
    also. FS-Cache might, for example.

    (2) Mark keys as 'trusted' and keyrings as 'trusted only'.

    KEYS: verify a certificate is signed by a 'trusted' key
    KEYS: Make the system 'trusted' keyring viewable by userspace
    KEYS: Add a 'trusted' flag and a 'trusted only' flag
    KEYS: Separate the kernel signature checking keyring from module signing

    These patches allow keys carrying asymmetric public keys to be marked as
    being 'trusted' and allow keyrings to be marked as only permitting the
    addition or linkage of trusted keys.

    Keys loaded from hardware during kernel boot or compiled into the kernel
    during build are marked as being trusted automatically. New keys can be
    loaded at runtime with add_key(). They are checked against the system
    keyring contents and if their signatures can be validated with keys that
    are already marked trusted, then they are marked trusted also and can
    thus be added into the master keyring.

    Patches from Mimi Zohar make this usable with the IMA keyrings also.

    (3) Remove the date checks on the key used to validate a module signature.

    X.509: Remove certificate date checks

    It's not reasonable to reject a signature just because the key that it was
    generated with is no longer valid datewise - especially if the kernel
    hasn't yet managed to set the system clock when the first module is
    loaded - so just remove those checks.

    (4) Make it simpler to deal with additional X.509 being loaded into the kernel.

    KEYS: Load *.x509 files into kernel keyring
    KEYS: Have make canonicalise the paths of the X.509 certs better to deduplicate

    The builder of the kernel now just places files with the extension ".x509"
    into the kernel source or build trees and they're concatenated by the
    kernel build and stuffed into the appropriate section.

    (5) Add support for userspace kerberos to use keyrings.

    KEYS: Add per-user_namespace registers for persistent per-UID kerberos caches
    KEYS: Implement a big key type that can save to tmpfs

    Fedora went to, by default, storing kerberos tickets and tokens in tmpfs.
    We looked at storing it in keyrings instead as that confers certain
    advantages such as tickets being automatically deleted after a certain
    amount of time and the ability for the kernel to get at these tokens more
    easily.

    To make this work, two things were needed:

    (a) A way for the tickets to persist beyond the lifetime of all a user's
    sessions so that cron-driven processes can still use them.

    The problem is that a user's session keyrings are deleted when the
    session that spawned them logs out and the user's user keyring is
    deleted when the UID is deleted (typically when the last log out
    happens), so neither of these places is suitable.

    I've added a system keyring into which a 'persistent' keyring is
    created for each UID on request. Each time a user requests their
    persistent keyring, the expiry time on it is set anew. If the user
    doesn't ask for it for, say, three days, the keyring is automatically
    expired and garbage collected using the existing gc. All the kerberos
    tokens it held are then also gc'd.

    (b) A key type that can hold really big tickets (up to 1MB in size).

    The problem is that Active Directory can return huge tickets with lots
    of auxiliary data attached. We don't, however, want to eat up huge
    tracts of unswappable kernel space for this, so if the ticket is
    greater than a certain size, we create a swappable shmem file and dump
    the contents in there and just live with the fact we then have an
    inode and a dentry overhead. If the ticket is smaller than that, we
    slap it in a kmalloc()'d buffer"

    * 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (121 commits)
    KEYS: Fix keyring content gc scanner
    KEYS: Fix error handling in big_key instantiation
    KEYS: Fix UID check in keyctl_get_persistent()
    KEYS: The RSA public key algorithm needs to select MPILIB
    ima: define '_ima' as a builtin 'trusted' keyring
    ima: extend the measurement list to include the file signature
    kernel/system_certificate.S: use real contents instead of macro GLOBAL()
    KEYS: fix error return code in big_key_instantiate()
    KEYS: Fix keyring quota misaccounting on key replacement and unlink
    KEYS: Fix a race between negating a key and reading the error set
    KEYS: Make BIG_KEYS boolean
    apparmor: remove the "task" arg from may_change_ptraced_domain()
    apparmor: remove parent task info from audit logging
    apparmor: remove tsk field from the apparmor_audit_struct
    apparmor: fix capability to not use the current task, during reporting
    Smack: Ptrace access check mode
    ima: provide hash algo info in the xattr
    ima: enable support for larger default filedata hash algorithms
    ima: define kernel parameter 'ima_template=' to change configured default
    ima: add Kconfig default measurement list template
    ...

    Linus Torvalds
     
  • Pull audit updates from Eric Paris:
    "Nothing amazing. Formatting, small bug fixes, couple of fixes where
    we didn't get records due to some old VFS changes, and a change to how
    we collect execve info..."

    Fixed conflict in fs/exec.c as per Eric and linux-next.

    * git://git.infradead.org/users/eparis/audit: (28 commits)
    audit: fix type of sessionid in audit_set_loginuid()
    audit: call audit_bprm() only once to add AUDIT_EXECVE information
    audit: move audit_aux_data_execve contents into audit_context union
    audit: remove unused envc member of audit_aux_data_execve
    audit: Kill the unused struct audit_aux_data_capset
    audit: do not reject all AUDIT_INODE filter types
    audit: suppress stock memalloc failure warnings since already managed
    audit: log the audit_names record type
    audit: add child record before the create to handle case where create fails
    audit: use given values in tty_audit enable api
    audit: use nlmsg_len() to get message payload length
    audit: use memset instead of trying to initialize field by field
    audit: fix info leak in AUDIT_GET requests
    audit: update AUDIT_INODE filter rule to comparator function
    audit: audit feature to set loginuid immutable
    audit: audit feature to only allow unsetting the loginuid
    audit: allow unsetting the loginuid (with priv)
    audit: remove CONFIG_AUDIT_LOGINUID_IMMUTABLE
    audit: loginuid functions coding style
    selinux: apply selinux checks on new audit message types
    ...

    Linus Torvalds
     
  • I don't know what went wrong, mis-merge or something, but ->pmd_huge_pte
    placed in wrong union within struct page.

    In original patch[1] it's placed to union with ->lru and ->slab, but in
    commit e009bb30c8df ("mm: implement split page table lock for PMD
    level") it's in union with ->index and ->freelist.

    That union seems also unused for pages with table tables and safe to
    re-use, but it's not what I've tested.

    Let's move it to original place. It fixes indentation at least. :)

    [1] https://lkml.org/lkml/2013/10/7/288

    Signed-off-by: Kirill A. Shutemov
    Reviewed-by: Naoya Horiguchi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     
  • Commit 7cb2ef56e6a8 ("mm: fix aio performance regression for database
    caused by THP") can cause dereference of a dangling pointer if
    split_huge_page runs during PageHuge() if there are updates to the
    tail_page->private field.

    Also it is repeating compound_head twice for hugetlbfs and it is running
    compound_head+compound_trans_head for THP when a single one is needed in
    both cases.

    The new code within the PageSlab() check doesn't need to verify that the
    THP page size is never bigger than the smallest hugetlbfs page size, to
    avoid memory corruption.

    A longstanding theoretical race condition was found while fixing the
    above (see the change right after the skip_unlock label, that is
    relevant for the compound_lock path too).

    By re-establishing the _mapcount tail refcounting for all compound
    pages, this also fixes the below problem:

    echo 0 >/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

    BUG: Bad page state in process bash pfn:59a01
    page:ffffea000139b038 count:0 mapcount:10 mapping: (null) index:0x0
    page flags: 0x1c00000000008000(tail)
    Modules linked in:
    CPU: 6 PID: 2018 Comm: bash Not tainted 3.12.0+ #25
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    Call Trace:
    dump_stack+0x55/0x76
    bad_page+0xd5/0x130
    free_pages_prepare+0x213/0x280
    __free_pages+0x36/0x80
    update_and_free_page+0xc1/0xd0
    free_pool_huge_page+0xc2/0xe0
    set_max_huge_pages.part.58+0x14c/0x220
    nr_hugepages_store_common.isra.60+0xd0/0xf0
    nr_hugepages_store+0x13/0x20
    kobj_attr_store+0xf/0x20
    sysfs_write_file+0x189/0x1e0
    vfs_write+0xc5/0x1f0
    SyS_write+0x55/0xb0
    system_call_fastpath+0x16/0x1b

    Signed-off-by: Khalid Aziz
    Signed-off-by: Andrea Arcangeli
    Tested-by: Khalid Aziz
    Cc: Pravin Shelar
    Cc: Greg Kroah-Hartman
    Cc: Ben Hutchings
    Cc: Christoph Lameter
    Cc: Johannes Weiner
    Cc: Mel Gorman
    Cc: Rik van Riel
    Cc: Andi Kleen
    Cc: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrea Arcangeli
     
  • Right now, the migration code in migrate_page_copy() uses copy_huge_page()
    for hugetlbfs and thp pages:

    if (PageHuge(page) || PageTransHuge(page))
    copy_huge_page(newpage, page);

    So, yay for code reuse. But:

    void copy_huge_page(struct page *dst, struct page *src)
    {
    struct hstate *h = page_hstate(src);

    and a non-hugetlbfs page has no page_hstate(). This works 99% of the
    time because page_hstate() determines the hstate from the page order
    alone. Since the page order of a THP page matches the default hugetlbfs
    page order, it works.

    But, if you change the default huge page size on the boot command-line
    (say default_hugepagesz=1G), then we might not even *have* a 2MB hstate
    so page_hstate() returns null and copy_huge_page() oopses pretty fast
    since copy_huge_page() dereferences the hstate:

    void copy_huge_page(struct page *dst, struct page *src)
    {
    struct hstate *h = page_hstate(src);
    if (unlikely(pages_per_huge_page(h) > MAX_ORDER_NR_PAGES)) {
    ...

    Mel noticed that the migration code is really the only user of these
    functions. This moves all the copy code over to migrate.c and makes
    copy_huge_page() work for THP by checking for it explicitly.

    I believe the bug was introduced in commit b32967ff101a ("mm: numa: Add
    THP migration for the NUMA working set scanning fault case")

    [akpm@linux-foundation.org: fix coding-style and comment text, per Naoya Horiguchi]
    Signed-off-by: Dave Hansen
    Acked-by: Mel Gorman
    Reviewed-by: Naoya Horiguchi
    Cc: Hillf Danton
    Cc: Andrea Arcangeli
    Tested-by: Dave Jiang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Hansen
     
  • Fix another really stupid bug - I introduced genl_set_err()
    precisely to be able to adjust the group and reject invalid
    ones, but then forgot to do so.

    Signed-off-by: Johannes Berg
    Signed-off-by: David S. Miller

    Johannes Berg
     
  • Unfortunately, I introduced a tremendously stupid bug into
    genlmsg_multicast() when doing all those multicast group
    changes: it adjusts the group number, but then passes it
    to genlmsg_multicast_netns() which does that again.

    Somehow, my tests failed to catch this, so add a warning
    into genlmsg_multicast_netns() and remove the offending
    group ID adjustment.

    Also add a warning to the similar code in other functions
    so people who misuse them are more loudly warned.

    Signed-off-by: Johannes Berg
    Signed-off-by: David S. Miller

    Johannes Berg
     

21 Nov, 2013

1 commit