12 Jan, 2015

1 commit

  • Pull perf fixes from Ingo Molnar:
    "Mostly tooling fixes, but also some kernel side fixes: uncore PMU
    driver fix, user regs sampling fix and an instruction decoder fix that
    unbreaks PEBS precise sampling"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86/uncore/hsw-ep: Handle systems with only two SBOXes
    perf/x86_64: Improve user regs sampling
    perf: Move task_pt_regs sampling into arch code
    x86: Fix off-by-one in instruction decoder
    perf hists browser: Fix segfault when showing callchain
    perf callchain: Free callchains when hist entries are deleted
    perf hists: Fix children sort key behavior
    perf diff: Fix to sort by baseline field by default
    perf list: Fix --raw-dump option
    perf probe: Fix crash in dwarf_getcfi_elf
    perf probe: Fix to fall back to find probe point in symbols
    perf callchain: Append callchains only when requested
    perf ui/tui: Print backtrace symbols when segfault occurs
    perf report: Show progress bar for output resorting

    Linus Torvalds
     

10 Jan, 2015

4 commits

  • Pull drm fixes from Dave Airlie:
    "I'm briefly working between holidays and LCA, so this is close to a
    couple of weeks of fixes,

    Two sets of amdkfd fixes, this is a new feature this kernel, and this
    pull fixes a few issues since it got merged, ordering when built-in to
    kernel and also the iommu vs gpu ordering patch, it also reworks the
    ioctl before the initial release.

    Otherwise:
    - radeon: some misc fixes all over, hdmi, 4k, dpm
    - nouveau: mcp77 init fixes, oops fix, bug on fix, msi fix
    - i915: power fixes, revert VGACNTR patch

    Probably be quiteer next week since I'll be at LCA anyways"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (33 commits)
    drm/amdkfd: rewrite kfd_ioctl() according to drm_ioctl()
    drm/amdkfd: reformat IOCTL definitions to drm-style
    drm/amdkfd: Do copy_to/from_user in general kfd_ioctl()
    drm/radeon: integer underflow in radeon_cp_dispatch_texture()
    drm/radeon: adjust default bapm settings for KV
    drm/radeon: properly filter DP1.2 4k modes on non-DP1.2 hw
    drm/radeon: fix sad_count check for dce3
    drm/radeon: KV has three PPLLs (v2)
    drm/amdkfd: unmap VMIDPASID when relesing VMID (non-HWS)
    drm/radeon: Init amdkfd only if it was compiled
    amdkfd: actually allocate longs for the pasid bitmask
    drm/nouveau/nouveau: Do not BUG_ON(!spin_is_locked()) on UP
    drm/nv4c/mc: disable msi
    drm/nouveau/fb/ram/mcp77: enable NISO poller
    drm/nouveau/fb/ram/mcp77: use carveout reg to determine size
    drm/nouveau/fb/ram/mcp77: subclass nouveau_ram
    drm/nouveau: wake up the card if necessary during gem callbacks
    drm/nouveau/device: Add support for GK208B, resolves bug 86935
    drm/nouveau: fix missing return statement in nouveau_ttm_tt_unpopulate
    drm/nouveau/bios: fix oops on pre-nv50 chipsets
    ...

    Linus Torvalds
     
  • Pull kgdb/kdb fixes from Jason Wessel:
    "These have been around since 3.17 and in kgdb-next for the last 9
    weeks and some will go back to -stable.

    Summary of changes:

    Cleanups
    - kdb: Remove unused command flags, repeat flags and KDB_REPEAT_NONE

    Fixes
    - kgdb/kdb: Allow access on a single core, if a CPU round up is
    deemed impossible, which will allow inspection of the now "trashed"
    kernel
    - kdb: Add enable mask for the command groups
    - kdb: access controls to restrict sensitive commands"

    * tag 'for_linus-3.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb:
    kernel/debug/debug_core.c: Logging clean-up
    kgdb: timeout if secondary CPUs ignore the roundup
    kdb: Allow access to sensitive commands to be restricted by default
    kdb: Add enable mask for groups of commands
    kdb: Categorize kdb commands (similar to SysRq categorization)
    kdb: Remove KDB_REPEAT_NONE flag
    kdb: Use KDB_REPEAT_* values as flags
    kdb: Rename kdb_register_repeat() to kdb_register_flags()
    kdb: Rename kdb_repeat_t to kdb_cmdflags_t, cmd_repeat to cmd_flags
    kdb: Remove currently unused kdbtab_t->cmd_flags

    Linus Torvalds
     
  • Pull two Ceph fixes from Sage Weil:
    "These are both pretty trivial: a sparse warning fix and size_t printk
    thing"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    libceph: fix sparse endianness warnings
    ceph: use %zu for len in ceph_fill_inline_data()

    Linus Torvalds
     
  • Merge misc fixes from Andrew Morton:
    "12 fixes"

    * emailed patches from Andrew Morton :
    mm, vmscan: prevent kswapd livelock due to pfmemalloc-throttled process being killed
    memcg: fix destination cgroup leak on task charges migration
    mm: memcontrol: switch soft limit default back to infinity
    mm/debug_pagealloc: remove obsolete Kconfig options
    vfs: renumber FMODE_NONOTIFY and add to uniqueness check
    arch/blackfin/mach-bf533/boards/stamp.c: add linux/delay.h
    ocfs2: fix the wrong directory passed to ocfs2_lookup_ino_from_name() when link file
    MAINTAINERS: update rydberg's addresses
    mm: protect set_page_dirty() from ongoing truncation
    mm: prevent endless growth of anon_vma hierarchy
    exit: fix race between wait_consider_task() and wait_task_zombie()
    ocfs2: remove bogus check in dlm_process_recovery_data

    Linus Torvalds
     

09 Jan, 2015

6 commits

  • On x86_64, at least, task_pt_regs may be only partially initialized
    in many contexts, so x86_64 should not use it without extra care
    from interrupt context, let alone NMI context.

    This will allow x86_64 to override the logic and will supply some
    scratch space to use to make a cleaner copy of user regs.

    Tested-by: Jiri Olsa
    Signed-off-by: Andy Lutomirski
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Stephane Eranian
    Cc: chenggang.qcg@taobao.com
    Cc: Wu Fengguang
    Cc: Namhyung Kim
    Cc: Mike Galbraith
    Cc: Arjan van de Ven
    Cc: David Ahern
    Cc: Arnaldo Carvalho de Melo
    Cc: Catalin Marinas
    Cc: Jean Pihet
    Cc: Linus Torvalds
    Cc: Mark Salter
    Cc: Russell King
    Cc: Will Deacon
    Cc: linux-arm-kernel@lists.infradead.org
    Link: http://lkml.kernel.org/r/e431cd4c18c2e1c44c774f10758527fb2d1025c4.1420396372.git.luto@amacapital.net
    Signed-off-by: Ingo Molnar

    Andy Lutomirski
     
  • Fix clashing values for O_PATH and FMODE_NONOTIFY on sparc. The
    clashing O_PATH value was added in commit 5229645bdc35 ("vfs: add
    nonconflicting values for O_PATH") but this can't be changed as it is
    user-visible.

    FMODE_NONOTIFY is only used internally in the kernel, but it is in the
    same numbering space as the other O_* flags, as indicated by the comment
    at the top of include/uapi/asm-generic/fcntl.h (and its use in
    fs/notify/fanotify/fanotify_user.c). So renumber it to avoid the clash.

    All of this has happened before (commit 12ed2e36c98a: "fanotify:
    FMODE_NONOTIFY and __O_SYNC in sparc conflict"), and all of this will
    happen again -- so update the uniqueness check in fcntl_init() to
    include __FMODE_NONOTIFY.

    Signed-off-by: David Drysdale
    Acked-by: David S. Miller
    Acked-by: Jan Kara
    Cc: Heinrich Schuchardt
    Cc: Alexander Viro
    Cc: Arnd Bergmann
    Cc: Stephen Rothwell
    Cc: Eric Paris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Drysdale
     
  • Tejun, while reviewing the code, spotted the following race condition
    between the dirtying and truncation of a page:

    __set_page_dirty_nobuffers() __delete_from_page_cache()
    if (TestSetPageDirty(page))
    page->mapping = NULL
    if (PageDirty())
    dec_zone_page_state(page, NR_FILE_DIRTY);
    dec_bdi_stat(mapping->backing_dev_info, BDI_RECLAIMABLE);
    if (page->mapping)
    account_page_dirtied(page)
    __inc_zone_page_state(page, NR_FILE_DIRTY);
    __inc_bdi_stat(mapping->backing_dev_info, BDI_RECLAIMABLE);

    which results in an imbalance of NR_FILE_DIRTY and BDI_RECLAIMABLE.

    Dirtiers usually lock out truncation, either by holding the page lock
    directly, or in case of zap_pte_range(), by pinning the mapcount with
    the page table lock held. The notable exception to this rule, though,
    is do_wp_page(), for which this race exists. However, do_wp_page()
    already waits for a locked page to unlock before setting the dirty bit,
    in order to prevent a race where clear_page_dirty() misses the page bit
    in the presence of dirty ptes. Upgrade that wait to a fully locked
    set_page_dirty() to also cover the situation explained above.

    Afterwards, the code in set_page_dirty() dealing with a truncation race
    is no longer needed. Remove it.

    Reported-by: Tejun Heo
    Signed-off-by: Johannes Weiner
    Acked-by: Kirill A. Shutemov
    Reviewed-by: Jan Kara
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • Constantly forking task causes unlimited grow of anon_vma chain. Each
    next child allocates new level of anon_vmas and links vma to all
    previous levels because pages might be inherited from any level.

    This patch adds heuristic which decides to reuse existing anon_vma
    instead of forking new one. It adds counter anon_vma->degree which
    counts linked vmas and directly descending anon_vmas and reuses anon_vma
    if counter is lower than two. As a result each anon_vma has either vma
    or at least two descending anon_vmas. In such trees half of nodes are
    leafs with alive vmas, thus count of anon_vmas is no more than two times
    bigger than count of vmas.

    This heuristic reuses anon_vmas as few as possible because each reuse
    adds false aliasing among vmas and rmap walker ought to scan more ptes
    when it searches where page is might be mapped.

    Link: http://lkml.kernel.org/r/20120816024610.GA5350@evergreen.ssec.wisc.edu
    Fixes: 5beb49305251 ("mm: change anon_vma linking to fix multi-process server scalability issue")
    [akpm@linux-foundation.org: fix typo, per Rik]
    Signed-off-by: Konstantin Khlebnikov
    Reported-by: Daniel Forrest
    Tested-by: Michal Hocko
    Tested-by: Jerome Marchand
    Reviewed-by: Michal Hocko
    Reviewed-by: Rik van Riel
    Cc: [2.6.34+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • Pull power management and ACPI fixes from Rafael Wysocki:
    "These are an ACPI device power management initialization fix (-stable
    material), two commits renaming stuff in the ACPI processor driver to
    make it more suitable for ARM64 processors and a new ACPI backlight
    blacklist entry.

    Specifics:

    - Fix ACPI power management intialization for device objects
    corresponding to devices that are not present at the init time (the
    _STA control method returns 0 for them) and therefore should not be
    regarded as power manageable (Rafael J Wysocki).

    - Rename a structure field and two functions used by the ACPI
    processor driver to make them less tied to architectures that use
    APICs (both x86 and ia64) and more suitable for ARM64 processors
    (Hanjun Guo).

    - Add a disable_native_backlight quirk for Dell XPS15 L521X designed
    in an unusual way preventing native backlight from working on that
    machine (Hans de Goede)"

    * tag 'pm+acpi-3.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / video: Add disable_native_backlight quirk for Dell XPS15 L521X
    ACPI / processor: Rename acpi_(un)map_lsapic() to acpi_(un)map_cpu()
    ACPI / processor: Convert apic_id to phys_id to make it arch agnostic
    ACPI / PM: Fix PM initialization for devices that are not present

    Linus Torvalds
     
  • The only real issue is the one in auth_x.c and it came with
    3.19-rc1 merge.

    Signed-off-by: Ilya Dryomov

    Ilya Dryomov
     

07 Jan, 2015

5 commits

  • Pull networking fixes from David Miller:
    "Just a pile of random fixes, including:

    1) Do not apply TSO limits to non-TSO packets, fix from Herbert Xu.

    2) MDI{,X} eeprom check in e100 driver is reversed, from John W.
    Linville.

    3) Missing error return assignments in several ethernet drivers, from
    Julia Lawall.

    4) Altera TSE device doesn't come back up after ifconfig down/up
    sequence, fix from Kostya Belezko.

    5) Add more cases to the check for whether the qmi_wwan device has a
    bogus MAC address and needs to be assigned a random one. From
    Kristian Evensen.

    6) Fix interrupt hangs in CPSW, from Felipe Balbi.

    7) Implement ndo_features_check in r8152 so that the stack doesn't
    feed GSO packets which are outside of the chip's capabilities.
    From Hayes Wang"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (26 commits)
    qla3xxx: don't allow never end busy loop
    xen-netback: fixing the propagation of the transmit shaper timeout
    r8152: support ndo_features_check
    batman-adv: fix potential TT client + orig-node memory leak
    batman-adv: fix multicast counter when purging originators
    batman-adv: fix counter for multicast supporting nodes
    batman-adv: fix lock class for decoding hash in network-coding.c
    batman-adv: fix delayed foreign originator recognition
    batman-adv: fix and simplify condition when bonding should be used
    Revert "mac80211: Fix accounting of the tailroom-needed counter"
    net: ethernet: cpsw: fix hangs with interrupts
    enic: free all rq buffs when allocation fails
    qmi_wwan: Set random MAC on devices with buggy fw
    openvswitch: Consistently include VLAN header in flow and port stats.
    tcp: Do not apply TSO segment limit to non-TSO packets
    Altera TSE: Add missing phydev
    net/mlx4_core: Fix error flow in mlx4_init_hca()
    net/mlx4_core: Correcly update the mtt's offset in the MR re-reg flow
    qlcnic: Fix return value in qlcnic_probe()
    net: axienet: fix error return code
    ...

    Linus Torvalds
     
  • * acpi-pm:
    ACPI / PM: Fix PM initialization for devices that are not present

    * acpi-processor:
    ACPI / processor: Rename acpi_(un)map_lsapic() to acpi_(un)map_cpu()
    ACPI / processor: Convert apic_id to phys_id to make it arch agnostic

    * acpi-video:
    ACPI / video: Add disable_native_backlight quirk for Dell XPS15 L521X

    Rafael J. Wysocki
     
  • Jay Foad reports that the address sanitizer test (asan) sometimes gets
    confused by a stack pointer that ends up being outside the stack vma
    that is reported by /proc/maps.

    This happens due to an interaction between RLIMIT_STACK and the guard
    page: when we do the guard page check, we ignore the potential error
    from the stack expansion, which effectively results in a missing guard
    page, since the expected stack expansion won't have been done.

    And since /proc/maps explicitly ignores the guard page (commit
    d7824370e263: "mm: fix up some user-visible effects of the stack guard
    page"), the stack pointer ends up being outside the reported stack area.

    This is the minimal patch: it just propagates the error. It also
    effectively makes the guard page part of the stack limit, which in turn
    measn that the actual real stack is one page less than the stack limit.

    Let's see if anybody notices. We could teach acct_stack_growth() to
    allow an extra page for a grow-up/grow-down stack in the rlimit test,
    but I don't want to add more complexity if it isn't needed.

    Reported-and-tested-by: Jay Foad
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • …kernel/git/jberg/mac80211

    Here's just a single fix - a revert of a patch that broke the
    p54 and cw2100 drivers (arguably due to bad assumptions there.)
    Since this affects kernels since 3.17, I decided to revert for
    now and we'll revisit this optimisation properly for -next.

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     
  • This patch reformats the ioctl definitions in kfd_ioctl.h to be similar to the
    drm ioctls definition style.

    v2: Renamed KFD_COMMAND_(START|END) to AMDKFD_...

    Signed-off-by: Oded Gabbay
    Acked-by: Christian König

    Oded Gabbay
     

06 Jan, 2015

2 commits

  • acpi_map_lsapic() will allocate a logical CPU number and map it to
    physical CPU id (such as APIC id) for the hot-added CPU, it will also
    do some mapping for NUMA node id and etc, acpi_unmap_lsapic() will
    do the reverse.

    We can see that the name of the function is a little bit confusing and
    arch (IA64) dependent so rename them as acpi_(un)map_cpu() to make arch
    agnostic and explicit.

    Signed-off-by: Hanjun Guo
    Signed-off-by: Rafael J. Wysocki

    Hanjun Guo
     
  • apic_id in MADT table is the CPU hardware id which identify
    it self in the system for x86 and ia64, OSPM will use it for
    SMP init to map APIC ID to logical cpu number in the early
    boot, when the DSDT/SSDT (ACPI namespace) is scanned later, the
    ACPI processor driver is probed and the driver will use acpi_id
    in DSDT to get the apic_id, then map to the logical cpu number
    which is needed by the processor driver.

    Before ACPI 5.0, only x86 and ia64 were supported in ACPI spec,
    so apic_id is used both in arch code and ACPI core which is
    pretty fine. Since ACPI 5.0, ARM is supported by ACPI and
    APIC is not available on ARM, this will confuse people when
    apic_id is both used by x86 and ARM in one function.

    So convert apic_id to phys_id (which is the original meaning)
    in ACPI processor dirver to make it arch agnostic, but leave the
    arch dependent code unchanged, no functional change.

    Signed-off-by: Hanjun Guo
    Signed-off-by: Rafael J. Wysocki

    Hanjun Guo
     

05 Jan, 2015

1 commit

  • This reverts commit ca34e3b5c808385b175650605faa29e71e91991b.

    It turns out that the p54 and cw2100 drivers assume that there's
    tailroom even when they don't say they really need it. However,
    there's currently no way for them to explicitly say they do need
    it, so for now revert this.

    This fixes https://bugzilla.kernel.org/show_bug.cgi?id=90331.

    Cc: stable@vger.kernel.org
    Fixes: ca34e3b5c808 ("mac80211: Fix accounting of the tailroom-needed counter")
    Reported-by: Christopher Chavez
    Bisected-by: Larry Finger
    Debugged-by: Christian Lamparter
    Signed-off-by: Johannes Berg

    Johannes Berg
     

03 Jan, 2015

2 commits

  • Pull sound fixes from Takashi Iwai:
    "Nothing too exciting as a new year's start here: most of fixes are for
    ASoC, a boot crash fix on OMAP for deferred probe, a few driver
    specific fixes (Intel, dwc, rockchip, rt5677), in addition to typo
    fixes in kerneldoc comments for PCM"

    * tag 'sound-3.19-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
    ALSA: pcm: Fix kerneldoc for params_*() functions
    ASoC: rockchip: i2s: fix maxburst of dma data to 4
    ASoC: rockchip: i2s: fix error defination of transmit data level
    ASoC: Intel: correct the fixed free block allocation
    ASoC: rt5677: fixed rt5677_dsp_vad_put rt5677_dsp_vad_get panic
    ASoC: Intel: Fix BYTCR machine driver MODULE_ALIAS
    ASoC: Intel: Fix BYTCR firmware name
    ASoC: dwc: Iterate over all channels
    ASoC: dwc: Ensure FIFOs are flushed to prevent channel swap
    ASoC: Intel: Add I2C dependency to two new machines
    ASoC: dapm: Remove snd_soc_of_parse_audio_routing() due to deferred probe

    Linus Torvalds
     
  • Pull vhost cleanup and virtio bugfix
    "There's a single change here, fixing a vhost bug where vhost
    initialization fails due to used ring alignment check being too
    strict"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    vhost: relax used address alignment
    virtio_ring: document alignment requirements

    Linus Torvalds
     

31 Dec, 2014

2 commits

  • Pull input layer fixes from Dmitry Torokhov:
    "Fixes for v7 protocol for ALPS devices and few other driver fixes.

    Also users can request input events to be stamped with boot time
    timestamps, in addition to real and monotonic timestamps"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: hil_kbd - fix incorrect use of init_completion
    Input: alps - v7: document the v7 touchpad packet protocol
    Input: alps - v7: fix finger counting for > 2 fingers on clickpads
    Input: alps - v7: sometimes a single touch is reported in mt[1]
    Input: alps - v7: ignore new packets
    Input: evdev - add CLOCK_BOOTTIME support
    Input: psmouse - expose drift duration for IBM trackpoints
    Input: stmpe - bias keypad columns properly
    Input: stmpe - enforce device tree only mode
    mfd: stmpe: add pull up/down register offsets for STMPE
    Input: optimize events_per_packet count calculation
    Input: edt-ft5x06 - fixed a macro coding style issue
    Input: gpio_keys - replace timer and workqueue with delayed workqueue
    Input: gpio_keys - allow separating gpio and irq in device tree

    Linus Torvalds
     
  • Pull networking fixes from David Miller:

    1) Fix double SKB free in bluetooth 6lowpan layer, from Jukka Rissanen.

    2) Fix receive checksum handling in enic driver, from Govindarajulu
    Varadarajan.

    3) Fix NAPI poll list corruption in virtio_net and caif_virtio, from
    Herbert Xu. Also, add code to detect drivers that have this mistake
    in the future.

    4) Fix doorbell endianness handling in mlx4 driver, from Amir Vadai.

    5) Don't clobber IP6CB() before xfrm6_policy_check() is called in TCP
    input path,f rom Nicolas Dichtel.

    6) Fix MPLS action validation in openvswitch, from Pravin B Shelar.

    7) Fix double SKB free in vxlan driver, also from Pravin.

    8) When we scrub a packet, which happens when we are switching the
    context of the packet (namespace, etc.), we should reset the
    secmark. From Thomas Graf.

    9) ->ndo_gso_check() needs to do more than return true/false, it also
    has to allow the driver to clear netdev feature bits in order for
    the caller to be able to proceed properly. From Jesse Gross.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (62 commits)
    genetlink: A genl_bind() to an out-of-range multicast group should not WARN().
    netlink/genetlink: pass network namespace to bind/unbind
    ne2k-pci: Add pci_disable_device in error handling
    bonding: change error message to debug message in __bond_release_one()
    genetlink: pass multicast bind/unbind to families
    netlink: call unbind when releasing socket
    netlink: update listeners directly when removing socket
    genetlink: pass only network namespace to genl_has_listeners()
    netlink: rename netlink_unbind() to netlink_undo_bind()
    net: Generalize ndo_gso_check to ndo_features_check
    net: incorrect use of init_completion fixup
    neigh: remove next ptr from struct neigh_table
    net: xilinx: Remove unnecessary temac_property in the driver
    net: phy: micrel: use generic config_init for KSZ8021/KSZ8031
    net/core: Handle csum for CHECKSUM_COMPLETE VXLAN forwarding
    openvswitch: fix odd_ptr_err.cocci warnings
    Bluetooth: Fix accepting connections when not using mgmt
    Bluetooth: Fix controller configuration with HCI_QUIRK_INVALID_BDADDR
    brcmfmac: Do not crash if platform data is not populated
    ipw2200: select CFG80211_WEXT
    ...

    Linus Torvalds
     

30 Dec, 2014

6 commits

  • Fix a copy and paste error in the kernel doc description for the params_*()
    functions.

    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Takashi Iwai

    Lars-Peter Clausen
     
  • Pull power management and ACPI material from Rafael J Wysocki:
    "These are fixes (operating performance points library, cpufreq-dt
    driver, cpufreq core, ACPI backlight, cpupower tool), cleanups
    (cpuidle), new processor IDs for the RAPL (Running Average Power
    Limit) power capping driver, and a modification of the generic power
    domains framework allowing modular drivers to call one of its helper
    functions.

    Specifics:

    - Fix for a potential NULL pointer dereference in the cpufreq core
    due to an initialization race condition (Ethan Zhao).

    - Fixes for abuse of the OPP (Operating Performance Points) API
    related to RCU and other minor issues in the OPP library and the
    cpufreq-dt driver (Dmitry Torokhov).

    - cpuidle governors cleanup making them measure idle duration in a
    better way without using the CPUIDLE_FLAG_TIME_INVALID flag which
    allows that flag to be dropped from the ACPI cpuidle driver and
    from the core too (Len Brown).

    - New ACPI backlight blacklist entries for Samsung machines without a
    working native backlight interface that need to use the ACPI
    backlight instead (Aaron Lu).

    - New CPU IDs of future Intel Xeon CPUs for the Intel RAPL power
    capping driver (Jacob Pan).

    - Generic power domains framework modification to export the
    of_genpd_get_from_provider() function to modular drivers that will
    allow future driver modifications to be based on the mainline (Amit
    Daniel Kachhap).

    - Two fixes for the cpupower tool (Michal Privoznik, Prarit
    Bhargava)"

    * tag 'pm+acpi-3.19-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / video: Add some Samsung models to disable_native_backlight list
    tools / cpupower: Fix no idle state information return value
    tools / cpupower: Correctly detect if running as root
    cpufreq: fix a NULL pointer dereference in __cpufreq_governor()
    cpufreq-dt: defer probing if OPP table is not ready
    PM / OPP: take RCU lock in dev_pm_opp_get_opp_count
    PM / OPP: fix warning in of_free_opp_table()
    PM / OPP: add some lockdep annotations
    powercap / RAPL: add IDs for future Xeon CPUs
    PM / Domains: Export of_genpd_get_from_provider function
    cpuidle / ACPI: remove unused CPUIDLE_FLAG_TIME_INVALID
    cpuidle: ladder: Better idle duration measurement without using CPUIDLE_FLAG_TIME_INVALID
    cpuidle: menu: Better idle duration measurement without using CPUIDLE_FLAG_TIME_INVALID

    Linus Torvalds
     
  • Pull thermal management updates from Zhang Rui:
    "First of all, the most important change is the thermal cpu cooling
    fixes. The major fix here is to have proper sequencing between
    cpufreq layer and thermal cpu cooling registration. A take away of
    this fix is an improvement in the thermal drivers code. Thermal
    drivers that require cpu cooling do not need to check for cpufreq
    layer. The requirement now is to propagate the error code, if any,
    while registering cpu cooling device. Thanks to Viresh for
    implementing the required CPUfreq changes.

    Second, a new driver is introduced for int340x processor thermal
    device. Given that int340x thermal is disabled by default, and this
    processor thermal device is only available on limited platforms, plus
    the driver does nothing but exposes some thermal limitation
    information for user space to use, thus I think it is safe to include
    it in this pull request after missing 3.19-rc2.

    Specifics:

    - Thermal cpu cooling fixes and cleanups.

    - introduce INT340X processor thermal reporting device driver.

    - several small fixes and cleanups for int340x thermal drivers"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (43 commits)
    Thermal/int340x/int3403: Free acpi notification handler
    Thermal/int340x/processor_thermal: Fix memory leak
    Thermal/int340x/int3403: Fix memory leak
    thermal: int340x: Introduce processor reporting device
    thermal: int340x_thermal: drop owner assignment from platform_drivers
    thermal: drop owner assignment from platform_drivers
    thermal: cpu_cooling: document node in struct cpufreq_cooling_device
    thermal/powerclamp: add ids for future xeon cpus
    Thermal/int340x: Handle properly the case when _trt or _art acpi entry is missing
    thermal: cpu_cooling: return ERR_PTR() for !CPU_THERMAL or !THERMAL_OF
    thermal: cpu_cooling: small memory leak on error
    thermal: ti-soc-thermal: Do not print error message in the EPROBE_DEFER case
    thermal: db8500: Do not print error message in the EPROBE_DEFER case
    thermal: imx: Do not print error message in the EPROBE_DEFER case
    thermal: Fix cdev registration with THERMAL_NO_LIMIT on 64bit
    drivers: thermal: Remove ARCH_HAS_BANDGAP dependency for samsung
    thermal:core:fix: Check return code of the ->get_max_state() callback
    thermal: cpu_cooling: update copyright tags
    thermal: cpu_cooling: Use cpufreq_dev->freq_table for finding level/freq
    thermal: cpu_cooling: Store frequencies in descending order
    ...

    Linus Torvalds
     
  • Commit 2457aec63745 ("mm: non-atomically mark page accessed during page
    cache allocation where possible") has added a separate parameter for
    specifying gfp mask for radix tree allocations.

    Not only this is less than optimal from the API point of view because it
    is error prone, it is also buggy currently because
    grab_cache_page_write_begin is using GFP_KERNEL for radix tree and if
    fgp_flags doesn't contain FGP_NOFS (mostly controlled by fs by
    AOP_FLAG_NOFS flag) but the mapping_gfp_mask has __GFP_FS cleared then
    the radix tree allocation wouldn't obey the restriction and might
    recurse into filesystem and cause deadlocks. This is the case for most
    filesystems unfortunately because only ext4 and gfs2 are using
    AOP_FLAG_NOFS.

    Let's simply remove radix_gfp_mask parameter because the allocation
    context is same for both page cache and for the radix tree. Just make
    sure that the radix tree gets only the sane subset of the mask (e.g. do
    not pass __GFP_WRITE).

    Long term it is more preferable to convert remaining users of
    AOP_FLAG_NOFS to use mapping_gfp_mask instead and simplify this
    interface even further.

    Reported-by: Dave Chinner
    Signed-off-by: Michal Hocko
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • * pm-domains:
    PM / Domains: Export of_genpd_get_from_provider function

    * powercap:
    powercap / RAPL: add IDs for future Xeon CPUs

    * pm-tools:
    tools / cpupower: Fix no idle state information return value
    tools / cpupower: Correctly detect if running as root

    Rafael J. Wysocki
     
  • * pm-cpufreq:
    cpufreq: fix a NULL pointer dereference in __cpufreq_governor()
    cpufreq-dt: defer probing if OPP table is not ready

    * pm-cpuidle:
    cpuidle / ACPI: remove unused CPUIDLE_FLAG_TIME_INVALID
    cpuidle: ladder: Better idle duration measurement without using CPUIDLE_FLAG_TIME_INVALID
    cpuidle: menu: Better idle duration measurement without using CPUIDLE_FLAG_TIME_INVALID

    Rafael J. Wysocki
     

29 Dec, 2014

1 commit

  • Host needs to know vring element alignment requirements:
    simply doing alignof on structures doesn't work reliably: on some
    platforms gcc has alignof(uint32_t) == 2.

    Add macros for alignment as specified in virtio 1.0 cs01,
    export them to userspace as well.

    Acked-by: Rusty Russell
    Signed-off-by: Michael S. Tsirkin

    Michael S. Tsirkin
     

27 Dec, 2014

5 commits

  • Netlink families can exist in multiple namespaces, and for the most
    part multicast subscriptions are per network namespace. Thus it only
    makes sense to have bind/unbind notifications per network namespace.

    To achieve this, pass the network namespace of a given client socket
    to the bind/unbind functions.

    Also do this in generic netlink, and there also make sure that any
    bind for multicast groups that only exist in init_net is rejected.
    This isn't really a problem if it is accepted since a client in a
    different namespace will never receive any notifications from such
    a group, but it can confuse the family if not rejected (it's also
    possible to silently (without telling the family) accept it, but it
    would also have to be ignored on unbind so families that take any
    kind of action on bind/unbind won't do unnecessary work for invalid
    clients like that.

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

    Johannes Berg
     
  • In order to make the newly fixed multicast bind/unbind
    functionality in generic netlink, pass them down to the
    appropriate family.

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

    Johannes Berg
     
  • There's no point to force the caller to know about the internal
    genl_sock to use inside struct net, just have them pass the network
    namespace. This doesn't really change code generation since it's
    an inline, but makes the caller less magic - there's never any
    reason to pass another socket.

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

    Johannes Berg
     
  • GSO isn't the only offload feature with restrictions that
    potentially can't be expressed with the current features mechanism.
    Checksum is another although it's a general issue that could in
    theory apply to anything. Even if it may be possible to
    implement these restrictions in other ways, it can result in
    duplicate code or inefficient per-packet behavior.

    This generalizes ndo_gso_check so that drivers can remove any
    features that don't make sense for a given packet, similar to
    netif_skb_features(). It also converts existing driver
    restrictions to the new format, completing the work that was
    done to support tunnel protocols since the issues apply to
    checksums as well.

    By actually removing features from the set that are used to do
    offloading, it solves another problem with the existing
    interface. In these cases, GSO would run with the original set
    of features and not do anything because it appears that
    segmentation is not required.

    CC: Tom Herbert
    CC: Joe Stringer
    CC: Eric Dumazet
    CC: Hayes Wang
    Signed-off-by: Jesse Gross
    Acked-by: Tom Herbert
    Fixes: 04ffcb255f22 ("net: Add ndo_gso_check")
    Tested-by: Hayes Wang
    Signed-off-by: David S. Miller

    Jesse Gross
     
  • After commit
    d7480fd3b173 ("neigh: remove dynamic neigh table registration support"),
    this field is not used anymore.

    CC: Cong Wang
    Signed-off-by: Nicolas Dichtel
    Acked-by: Cong Wang
    Signed-off-by: David S. Miller

    Nicolas Dichtel
     

26 Dec, 2014

1 commit

  • Pull drm fixes from Dave Airlie:
    "Xmas fixes pull:

    core:
    one atomic fix, revert the WARN_ON dumb buffers patch.

    agp:
    fixup Dave J.

    nouveau:
    fix 3.18 regression for old userspace

    tegra fixes:
    vblank and iommu fixes

    amdkfd:
    fix bugs shown by testing with userspace, init apertures once

    msm:
    hdmi fixes and cleanup

    i915:
    misc fixes

    There is also a link ordering fix that I've asked to be cc'ed to you,
    putting iommu before gpu, it fixes an issue with amdkfd when things
    are all in the kernel, but I didn't like sending it via my tree
    without discussion.

    I'll probably be a bit on/off for a few weeks with pulls now, due to
    holidays and LCA, so don't be surprised if stuff gets a bit backed up,
    and things end up a bit large due to lag"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (28 commits)
    Revert "drm/gem: Warn on illegal use of the dumb buffer interface v2"
    agp: Fix up email address & attributions in AGP MODULE_AUTHOR tags
    nouveau: bring back legacy mmap handler
    drm/msm/hdmi: rework HDMI IRQ handler
    drm/msm/hdmi: enable regulators before clocks to avoid warnings
    drm/msm/mdp5: update irqs on crtcencoder link change
    drm/msm: block incoming update on pending updates
    drm/atomic: fix potential null ptr on plane enable
    drm/msm: Deletion of unnecessary checks before the function call "release_firmware"
    drm/msm: Deletion of unnecessary checks before two function calls
    drm/tegra: dc: Select root window for event dispatch
    drm/tegra: gem: Use the proper size for GEM objects
    drm/tegra: gem: Flush buffer objects upon allocation
    drm/tegra: dc: Fix a potential race on page-flip completion
    drm/tegra: dc: Consistently use the same pipe
    drm/irq: Add drm_crtc_vblank_count()
    drm/irq: Add drm_crtc_handle_vblank()
    drm/irq: Add drm_crtc_send_vblank_event()
    drm/i915: Disable PSMI sleep messages on all rings around context switches
    drm/i915: Force the CS stall for invalidate flushes
    ...

    Linus Torvalds
     

24 Dec, 2014

3 commits

  • This reverts commit 355a70183848f21198e9f6296bd646df3478a26d.

    This had some bad side effects under normal operation, and should
    have been dropped earlier.

    Signed-off-by: Dave Airlie

    Dave Airlie
     
  • Pull audit fixes from Paul Moore:
    "Four patches to fix various problems with the audit subsystem, all are
    fairly small and straightforward.

    One patch fixes a problem where we weren't using the correct gfp
    allocation flags (GFP_KERNEL regardless of context, oops), one patch
    fixes a problem with old userspace tools (this was broken for a
    while), one patch fixes a problem where we weren't recording pathnames
    correctly, and one fixes a problem with PID based filters.

    In general I don't think there is anything controversial with this
    patchset, and it fixes some rather unfortunate bugs; the allocation
    flag one can be particularly scary looking for users"

    * 'upstream' of git://git.infradead.org/users/pcmoore/audit:
    audit: restore AUDIT_LOGINUID unset ABI
    audit: correctly record file names with different path name types
    audit: use supplied gfp_mask from audit_buffer in kauditd_send_multicast_skb
    audit: don't attempt to lookup PIDs when changing PID filtering audit rules

    Linus Torvalds
     
  • A regression was caused by commit 780a7654cee8:
    audit: Make testing for a valid loginuid explicit.
    (which in turn attempted to fix a regression caused by e1760bd)

    When audit_krule_to_data() fills in the rules to get a listing, there was a
    missing clause to convert back from AUDIT_LOGINUID_SET to AUDIT_LOGINUID.

    This broke userspace by not returning the same information that was sent and
    expected.

    The rule:
    auditctl -a exit,never -F auid=-1
    gives:
    auditctl -l
    LIST_RULES: exit,never f24=0 syscall=all
    when it should give:
    LIST_RULES: exit,never auid=-1 (0xffffffff) syscall=all

    Tag it so that it is reported the same way it was set. Create a new
    private flags audit_krule field (pflags) to store it that won't interact with
    the public one from the API.

    Cc: stable@vger.kernel.org # v3.10-rc1+
    Signed-off-by: Richard Guy Briggs
    Signed-off-by: Paul Moore

    Richard Guy Briggs
     

23 Dec, 2014

1 commit

  • drm/tegra: Fixes for v3.19-rc1

    This is a set of fixes for two regressions and one bug in the IOMMU
    mapping code. It turns out that all of these issues turn up primarily
    on Tegra30 hardware. The IOMMU mapping bug only manifests on buffers
    that aren't multiples of the page size. I happened to be testing HDMI
    with 1080p while writing the code and framebuffers for that happen to
    fit exactly within 2025 pages of 4 KiB each.

    One of the regressions is caused by the IOMMU code allocating pages from
    shmem which can have associated cache lines. If the pages aren't flushed
    then these cache lines may be flushed later on and cause framebuffer
    corruption. I'm not sure why I didn't see this before. Perhaps the board
    that I was using had enough RAM so that the pages shmem would hand out
    had a better chance of being unused. Or maybe I didn't look too closely.
    The fix for this is to fake up an SG table so that it can be passed to
    the DMA API. Ideally this would use drm_clflush_*(), but implementing
    that for ARM causes DRM to fail to build as a module since some of the
    low-level cache maintenance functions aren't exported. Hopefully we can
    get a suitable API exported on ARM for the next release.

    The second regression is caused by a mismatch between the hardware pipe
    number and the CRTC's DRM index. These were used inconsistently, which
    could cause one code location to call drm_vblank_get() with a different
    pipe than the corresponding drm_vblank_put(), thereby causing the
    reference count to become unbalanced. Alexandre also reported a possible
    race condition related to this, which this series also fixes.

    * tag 'drm/tegra/for-3.19-rc1-fixes' of git://people.freedesktop.org/~tagr/linux:
    drm/tegra: dc: Select root window for event dispatch
    drm/tegra: gem: Use the proper size for GEM objects
    drm/tegra: gem: Flush buffer objects upon allocation
    drm/tegra: dc: Fix a potential race on page-flip completion
    drm/tegra: dc: Consistently use the same pipe
    drm/irq: Add drm_crtc_vblank_count()
    drm/irq: Add drm_crtc_handle_vblank()
    drm/irq: Add drm_crtc_send_vblank_event()

    Dave Airlie