04 Mar, 2016

2 commits

  • Currently, network /system cross-timestamping is performed in the
    PTP_SYS_OFFSET ioctl. The PTP clock driver reads gettimeofday() and
    the gettime64() callback provided by the driver. The cross-timestamp
    is best effort where the latency between the capture of system time
    (getnstimeofday()) and the device time (driver callback) may be
    significant.

    The getcrosststamp() callback and corresponding PTP_SYS_OFFSET_PRECISE
    ioctl allows the driver to perform this device/system correlation when
    for example cross timestamp hardware is available. Modern Intel
    systems can do this for onboard Ethernet controllers using the ART
    counter. There is virtually zero latency between captures of the ART
    and network device clock.

    The capabilities ioctl (PTP_CLOCK_GETCAPS), is augmented allowing
    applications to query whether or not drivers implement the
    getcrosststamp callback, providing more precise cross timestamping.

    Cc: Prarit Bhargava
    Cc: Richard Cochran
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andy Lutomirski
    Cc: kevin.b.stanton@intel.com
    Cc: kevin.j.clarke@intel.com
    Cc: hpa@zytor.com
    Cc: jeffrey.t.kirsher@intel.com
    Cc: netdev@vger.kernel.org
    Acked-by: Richard Cochran
    Signed-off-by: Christopher S. Hall
    [jstultz: Commit subject tweaks]
    Signed-off-by: John Stultz

    Christopher S. Hall
     
  • On modern Intel systems TSC is derived from the new Always Running Timer
    (ART). ART can be captured simultaneous to the capture of
    audio and network device clocks, allowing a correlation between timebases
    to be constructed. Upon capture, the driver converts the captured ART
    value to the appropriate system clock using the correlated clocksource
    mechanism.

    On systems that support ART a new CPUID leaf (0x15) returns parameters
    “m” and “n” such that:

    TSC_value = (ART_value * m) / n + k [n >= 1]

    [k is an offset that can adjusted by a privileged agent. The
    IA32_TSC_ADJUST MSR is an example of an interface to adjust k.
    See 17.14.4 of the Intel SDM for more details]

    Cc: Prarit Bhargava
    Cc: Richard Cochran
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andy Lutomirski
    Cc: kevin.b.stanton@intel.com
    Cc: kevin.j.clarke@intel.com
    Cc: hpa@zytor.com
    Cc: jeffrey.t.kirsher@intel.com
    Cc: netdev@vger.kernel.org
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Christopher S. Hall
    [jstultz: Tweaked to fix build issue, also reworked math for
    64bit division on 32bit systems, as well as !CONFIG_CPU_FREQ build
    fixes]
    Signed-off-by: John Stultz

    Christopher S. Hall
     

03 Mar, 2016

5 commits

  • Another representative use case of time sync and the correlated
    clocksource (in addition to PTP noted above) is PTP synchronized
    audio.

    In a streaming application, as an example, samples will be sent and/or
    received by multiple devices with a presentation time that is in terms
    of the PTP master clock. Synchronizing the audio output on these
    devices requires correlating the audio clock with the PTP master
    clock. The more precise this correlation is, the better the audio
    quality (i.e. out of sync audio sounds bad).

    From an application standpoint, to correlate the PTP master clock with
    the audio device clock, the system clock is used as a intermediate
    timebase. The transforms such an application would perform are:

    System Clock Audio clock
    System Clock Network Device Clock [ PTP Master Clock]

    Modern Intel platforms can perform a more accurate cross timestamp in
    hardware (ART,audio device clock). The audio driver requires
    ART->system time transforms -- the same as required for the network
    driver. These platforms offload audio processing (including
    cross-timestamps) to a DSP which to ensure uninterrupted audio
    processing, communicates and response to the host only once every
    millsecond. As a result is takes up to a millisecond for the DSP to
    receive a request, the request is processed by the DSP, the audio
    output hardware is polled for completion, the result is copied into
    shared memory, and the host is notified. All of these operation occur
    on a millisecond cadence. This transaction requires about 2 ms, but
    under heavier workloads it may take up to 4 ms.

    Adding a history allows these slow devices the option of providing an
    ART value outside of the current interval. In this case, the callback
    provided is an accessor function for the previously obtained counter
    value. If get_system_device_crosststamp() receives a counter value
    previous to cycle_last, it consults the history provided as an
    argument in history_ref and interpolates the realtime and monotonic
    raw system time using the provided counter value. If there are any
    clock discontinuities, e.g. from calling settimeofday(), the monotonic
    raw time is interpolated in the usual way, but the realtime clock time
    is adjusted by scaling the monotonic raw adjustment.

    When an accessor function is used a history argument *must* be
    provided. The history is initialized using ktime_get_snapshot() and
    must be called before the counter values are read.

    Cc: Prarit Bhargava
    Cc: Richard Cochran
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andy Lutomirski
    Cc: kevin.b.stanton@intel.com
    Cc: kevin.j.clarke@intel.com
    Cc: hpa@zytor.com
    Cc: jeffrey.t.kirsher@intel.com
    Cc: netdev@vger.kernel.org
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Christopher S. Hall
    [jstultz: Fixed up cycles_t/cycle_t type confusion]
    Signed-off-by: John Stultz

    Christopher S. Hall
     
  • ACKNOWLEDGMENT: cross timestamp code was developed by Thomas Gleixner
    . It has changed considerably and any mistakes are
    mine.

    The precision with which events on multiple networked systems can be
    synchronized using, as an example, PTP (IEEE 1588, 802.1AS) is limited
    by the precision of the cross timestamps between the system clock and
    the device (timestamp) clock. Precision here is the degree of
    simultaneity when capturing the cross timestamp.

    Currently the PTP cross timestamp is captured in software using the
    PTP device driver ioctl PTP_SYS_OFFSET. Reads of the device clock are
    interleaved with reads of the realtime clock. At best, the precision
    of this cross timestamp is on the order of several microseconds due to
    software latencies. Sub-microsecond precision is required for
    industrial control and some media applications. To achieve this level
    of precision hardware supported cross timestamping is needed.

    The function get_device_system_crosstimestamp() allows device drivers
    to return a cross timestamp with system time properly scaled to
    nanoseconds. The realtime value is needed to discipline that clock
    using PTP and the monotonic raw value is used for applications that
    don't require a "real" time, but need an unadjusted clock time. The
    get_device_system_crosstimestamp() code calls back into the driver to
    ensure that the system counter is within the current timekeeping
    update interval.

    Modern Intel hardware provides an Always Running Timer (ART) which is
    exactly related to TSC through a known frequency ratio. The ART is
    routed to devices on the system and is used to precisely and
    simultaneously capture the device clock with the ART.

    Cc: Prarit Bhargava
    Cc: Richard Cochran
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andy Lutomirski
    Cc: kevin.b.stanton@intel.com
    Cc: kevin.j.clarke@intel.com
    Cc: hpa@zytor.com
    Cc: jeffrey.t.kirsher@intel.com
    Cc: netdev@vger.kernel.org
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Christopher S. Hall
    [jstultz: Reworked to remove extra structures and simplify calling]
    Signed-off-by: John Stultz

    Christopher S. Hall
     
  • The code in ktime_get_snapshot() is a superset of the code in
    ktime_get_raw_and_real() code. Further, ktime_get_raw_and_real() is
    called only by the PPS code, pps_get_ts(). Consolidate the
    pps_get_ts() code into a single function calling ktime_get_snapshot()
    and eliminate ktime_get_raw_and_real(). A side effect of this is that
    the raw and real results of pps_get_ts() correspond to exactly the
    same clock cycle. Previously these values represented separate reads
    of the system clock.

    Cc: Prarit Bhargava
    Cc: Richard Cochran
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andy Lutomirski
    Cc: kevin.b.stanton@intel.com
    Cc: kevin.j.clarke@intel.com
    Cc: hpa@zytor.com
    Cc: jeffrey.t.kirsher@intel.com
    Cc: netdev@vger.kernel.org
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Christopher S. Hall
    Signed-off-by: John Stultz

    Christopher S. Hall
     
  • In the current timekeeping code there isn't any interface to
    atomically capture the current relationship between the system counter
    and system time. ktime_get_snapshot() returns this triple (counter,
    monotonic raw, realtime) in the system_time_snapshot struct.

    Cc: Prarit Bhargava
    Cc: Richard Cochran
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andy Lutomirski
    Cc: kevin.b.stanton@intel.com
    Cc: kevin.j.clarke@intel.com
    Cc: hpa@zytor.com
    Cc: jeffrey.t.kirsher@intel.com
    Cc: netdev@vger.kernel.org
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Christopher S. Hall
    [jstultz: Moved structure definitions around to clean things up,
    fixed cycles_t/cycle_t confusion.]
    Signed-off-by: John Stultz

    Christopher S. Hall
     
  • The timekeeping code does not currently provide a way to translate
    externally provided clocksource cycles to system time. The cycle count
    is always provided by the result clocksource read() method internal to
    the timekeeping code. The added function timekeeping_cycles_to_ns()
    calculated a nanosecond value from a cycle count that can be added to
    tk_read_base.base value yielding the current system time. This allows
    clocksource cycle values external to the timekeeping code to provide a
    cycle count that can be transformed to system time.

    Cc: Prarit Bhargava
    Cc: Richard Cochran
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andy Lutomirski
    Cc: kevin.b.stanton@intel.com
    Cc: kevin.j.clarke@intel.com
    Cc: hpa@zytor.com
    Cc: jeffrey.t.kirsher@intel.com
    Cc: netdev@vger.kernel.org
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Christopher S. Hall
    Signed-off-by: John Stultz

    Christopher S. Hall
     

27 Feb, 2016

2 commits

  • The CLOCKSOURCE_MASK(32) macro expands to the same value, but
    makes code more readable.

    Signed-off-by: Alexander Kuleshov
    Signed-off-by: John Stultz
    Cc: Prarit Bhargava
    Cc: Richard Cochran
    Link: http://lkml.kernel.org/r/1456542854-22104-3-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner

    Alexander Kuleshov
     
  • The clocksource_khz2mult() and clocksource_hz2mult() share similar
    code wihch calculates a mult from the given frequency. Both implementations
    in differ only in value of a frequency. This patch introduces the
    clocksource_freq2mult() helper with generic implementation of
    mult calculation to prevent code duplication.

    Signed-off-by: Alexander Kuleshov
    Signed-off-by: John Stultz
    Cc: Prarit Bhargava
    Cc: Richard Cochran
    Link: http://lkml.kernel.org/r/1456542854-22104-2-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner

    Alexander Kuleshov
     

25 Feb, 2016

9 commits

  • set_state_oneshot_stopped() is called by the clkevt core, when the next
    event is required at an expiry time of 'KTIME_MAX'. This normally
    happens with NO_HZ_{IDLE|FULL} in both LOWRES/HIGHRES modes.

    This patch makes the clockevent device to stop on such an event, to
    avoid spurious interrupts, as explained by: commit 8fff52fd5093
    ("clockevents: Introduce CLOCK_EVT_STATE_ONESHOT_STOPPED state").

    Signed-off-by: Viresh Kumar
    Signed-off-by: Daniel Lezcano

    Viresh Kumar
     
  • set_state_oneshot_stopped() is called by the clkevt core, when the next
    event is required at an expiry time of 'KTIME_MAX'. This normally
    happens with NO_HZ_{IDLE|FULL} in both LOWRES/HIGHRES modes.

    This patch makes the clockevent device to stop on such an event, to
    avoid spurious interrupts, as explained by: commit 8fff52fd5093
    ("clockevents: Introduce CLOCK_EVT_STATE_ONESHOT_STOPPED state").

    Signed-off-by: Viresh Kumar
    Signed-off-by: Daniel Lezcano

    Viresh Kumar
     
  • set_state_oneshot_stopped() is called by the clkevt core, when the next
    event is required at an expiry time of 'KTIME_MAX'. This normally
    happens with NO_HZ_{IDLE|FULL} in both LOWRES/HIGHRES modes.

    This patch makes the clockevent device to stop on such an event, to
    avoid spurious interrupts, as explained by: commit 8fff52fd5093
    ("clockevents: Introduce CLOCK_EVT_STATE_ONESHOT_STOPPED state").

    Signed-off-by: Viresh Kumar
    Signed-off-by: Daniel Lezcano

    Viresh Kumar
     
  • Provide a delay timer using the lower 32-bits of the global timer so
    that we can use that instead of having to calibrating delays.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Daniel Lezcano

    Rabin Vincent
     
  • This commit implements the ARM timer-based delay timer for the
    LPC32xx, LPC18xx, LPC43xx family of SoCs.

    Also, add a dependency to restrict compiling this driver for
    the ARM architecture.

    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Daniel Lezcano
    Reviewed-by: Joachim Eastwood
    Tested-by: Joachim Eastwood

    Ezequiel Garcia
     
  • This commit adds the support for periodic mode. This is done by not
    setting the MR0S (Stop on TnMR0) bit on MCR, thus allowing
    interrupts to be periodically generated on MR0 matches.

    In order to do this, move the initial configuration that is specific to
    the one-shot mode to set_state_oneshot().

    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Daniel Lezcano
    Reviewed-by: Joachim Eastwood
    Tested-by: Joachim Eastwood

    Ezequiel Garcia
     
  • This commit switches the clockevents one-shot current implementation
    to avoid using the prescaler counter. The clockevents timer currently
    uses MR0=1, PR=ticks; and after this commit is uses MR0=ticks, PR=0.

    While using the prescaler with PR=1 works fine in one-shot mode,
    it seems it doesn't work as expected in periodic mode.

    By using the only match channel register (MR0) for the timer we make
    the periodic mode introduction easier, and consistent with one-shot mode.

    Signed-off-by: Ezequiel Garcia
    Signed-off-by: Daniel Lezcano
    Reviewed-by: Joachim Eastwood
    Tested-by: Joachim Eastwood

    Ezequiel Garcia
     
  • Currently rockchip_timer doesn't do some basic cleanup work when
    failing to init the timer. Let's add err handle routine to deal
    with all the err cases.

    Signed-off-by: Shawn Lin
    Signed-off-by: Daniel Lezcano

    Shawn Lin
     
  • So far, we have been blindly assuming that having access to a
    memory-mapped timer frame implies that the individual elements of that
    frame frame are already enabled. Whilst it's the firmware's job to give
    us non-secure access to frames in the first place, we should not rely
    on implementations always being generous enough to also configure CNTACR
    for those non-secure frames (e.g. [1]).

    Explicitly enable feature-level access per-frame, and verify that the
    access we want is really implemented before trying to make use of it.

    [1]:https://github.com/ARM-software/tf-issues/issues/170

    Acked-by: Mark Rutland
    Reviewed-by: Stephen Boyd
    Tested-by: Stephen Boyd
    Acked-by: Marc Zyngier
    Signed-off-by: Robin Murphy
    Signed-off-by: Daniel Lezcano

    Robin Murphy
     

27 Jan, 2016

5 commits

  • Hyper-V vmbus module registers TSC page clocksource when loaded. This is
    the clocksource with the highest rating and thus it becomes the watchdog
    making unloading of the vmbus module impossible.
    Separate clocksource_select_watchdog() from clocksource_enqueue_watchdog()
    and use it on clocksource register/rating change/unregister.

    After all, lobotomized monkeys may need some love too.

    Signed-off-by: Vitaly Kuznetsov
    Cc: John Stultz
    Cc: Dexuan Cui
    Cc: K. Y. Srinivasan
    Link: http://lkml.kernel.org/r/1453483913-25672-1-git-send-email-vkuznets@redhat.com
    Signed-off-by: Thomas Gleixner

    Vitaly Kuznetsov
     
  • In order to avoid NTP messing with the guest timer behind our back,
    use the new and improved monotonic raw version of the hrtimers.

    Signed-off-by: Marc Zyngier
    Cc: Tomasz Nowicki
    Cc: Christoffer Dall
    Link: http://lkml.kernel.org/r/1452879670-16133-4-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     
  • It is way too easy to take any random clockid and feed it to
    the hrtimer subsystem. At best, it gets mapped to a monotonic
    base, but it would be better to just catch illegal values as
    early as possible.

    This patch does exactly that, mapping illegal clockids to an
    illegal base index, and panicing when we detect the illegal
    condition.

    Signed-off-by: Marc Zyngier
    Cc: Tomasz Nowicki
    Cc: Christoffer Dall
    Link: http://lkml.kernel.org/r/1452879670-16133-3-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     
  • The KVM/ARM timer implementation arms a hrtimer when a vcpu is
    blocked (usually because it is waiting for an interrupt)
    while its timer is going to kick in the future.

    It is essential that this timer doesn't get adjusted, or the
    guest will end up being woken-up at the wrong time (NTP running
    on the host seems to confuse the hell out of some guests).

    In order to allow this, let's add CLOCK_MONOTONIC_RAW support
    to hrtimer (it is so far only supported for posix timers). It also
    has the (limited) benefit of fixing de0421d53bfb ("mac80211_hwsim:
    shuffle code to prepare for dynamic radios"), which already uses
    this functionnality without realizing wasn't implemented (just being
    lucky...).

    Signed-off-by: Marc Zyngier
    Cc: Tomasz Nowicki
    Cc: Christoffer Dall
    Link: http://lkml.kernel.org/r/1452879670-16133-2-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     
  • Last parameter of the clocks_calc_mult_shift() was renamed from minsec to
    maxsec in the 5fdade95 (time: Rename misnamed minsec argument of
    clocks_calc_mult_shift()).

    Signed-off-by: Alexander Kuleshov
    Link: http://lkml.kernel.org/r/1444987253-11018-1-git-send-email-kuleshovmail@gmail.com
    Signed-off-by: Thomas Gleixner

    Alexander Kuleshov
     

25 Jan, 2016

11 commits

  • Linus Torvalds
     
  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for MIPS for 4.5 plus some 4.4 fixes.

    The executive summary:

    - ATH79 platform improvments, use DT bindings for the ATH79 USB PHY.
    - Avoid useless rebuilds for zboot.
    - jz4780: Add NEMC, BCH and NAND device tree nodes
    - Initial support for the MicroChip's DT platform. As all the device
    drivers are missing this is still of limited use.
    - Some Loongson3 cleanups.
    - The unavoidable whitespace polishing.
    - Reduce clock skew when synchronizing the CPU cycle counters on CPU
    startup.
    - Add MIPS R6 fixes.
    - Lots of cleanups across arch/mips as fallout from KVM.
    - Lots of minor fixes and changes for IEEE 754-2008 support to the
    FPU emulator / fp-assist software.
    - Minor Ralink, BCM47xx and bcm963xx platform support improvments.
    - Support SMP on BCM63168"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (84 commits)
    MIPS: zboot: Add support for serial debug using the PROM
    MIPS: zboot: Avoid useless rebuilds
    MIPS: BMIPS: Enable ARCH_WANT_OPTIONAL_GPIOLIB
    MIPS: bcm63xx: nvram: Remove unused bcm63xx_nvram_get_psi_size() function
    MIPS: bcm963xx: Update bcm_tag field image_sequence
    MIPS: bcm963xx: Move extended flash address to bcm_tag header file
    MIPS: bcm963xx: Move Broadcom BCM963xx image tag data structure
    MIPS: bcm63xx: nvram: Use nvram structure definition from header file
    MIPS: bcm963xx: Add Broadcom BCM963xx board nvram data structure
    MAINTAINERS: Add KVM for MIPS entry
    MIPS: KVM: Add missing newline to kvm_err()
    MIPS: Move KVM specific opcodes into asm/inst.h
    MIPS: KVM: Use cacheops.h definitions
    MIPS: Break down cacheops.h definitions
    MIPS: Use EXCCODE_ constants with set_except_vector()
    MIPS: Update trap codes
    MIPS: Move Cause.ExcCode trap codes to mipsregs.h
    MIPS: KVM: Make kvm_mips_{init,exit}() static
    MIPS: KVM: Refactor added offsetof()s
    MIPS: KVM: Convert EXPORT_SYMBOL to _GPL
    ...

    Linus Torvalds
     
  • …linux-platform-drivers-x86

    Pull x86 platform driver updates from Darren Hart:
    "Emergency travel prevented me from completing my final testing on this
    until today. Nothing here that couldn't wait until RC1 fixes, but I
    thought it best to get it out sooner rather than later as it does
    contain a build warning fix.

    Summary:

    A build warning fix, MAINTAINERS cleanup, and a new DMI quirk:

    ideapad-laptop:
    - Add Lenovo Yoga 700 to no_hw_rfkill dmi list

    MAINTAINERS:
    - Combine multiple telemetry entries

    intel_telemetry_debugfs:
    - Fix unused warnings in telemetry debugfs"

    * tag 'platform-drivers-x86-v4.5-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
    ideapad-laptop: Add Lenovo Yoga 700 to no_hw_rfkill dmi list
    MAINTAINERS: Combine multiple telemetry entries
    intel_telemetry_debugfs: Fix unused warnings in telemetry debugfs

    Linus Torvalds
     
  • Pull thermal management updates from Zhang Rui:
    "The top merge commit was re-generated yesterday because two topic
    branches were dropped from this pull request in the last minute due to
    some unaddressed comments. All the other material has been in
    linux-next for quite a while.

    Specifics:

    - Enhance thermal core to handle unexpected device cooling states
    after fresh boot and system resume. From Zhang Rui and Chen Yu.

    - Several fixes and cleanups on Rockchip and RCAR thermal drivers.
    From Caesar Wang and Kuninori Morimoto.

    - Add Broxton support for Intel processor thermal reporting device
    driver. From Amy Wiles"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
    thermal: trip_point_temp_store() calls thermal_zone_device_update()
    thermal: rcar: rcar_thermal_get_temp() return error if strange temp
    thermal: rcar: check irq possibility in rcar_thermal_irq_xxx()
    thermal: rcar: check every rcar_thermal_update_temp() return value
    thermal: rcar: move rcar_thermal_dt_ids to upside
    thermal: rockchip: Support the RK3399 SoCs in thermal driver
    thermal: rockchip: Support the RK3228 SoCs in thermal driver
    dt-bindings: rockchip-thermal: Support the RK3228/RK3399 SoCs compatible
    thermal: rockchip: fix a trivial typo
    Thermal: Enable Broxton SoC thermal reporting device
    thermal: constify pch_dev_ops structure
    Thermal: do thermal zone update after a cooling device registered
    Thermal: handle thermal zone device properly during system sleep
    Thermal: initialize thermal zone device correctly

    Linus Torvalds
     
  • Pull 9p updates from Eric Van Hensbergen:
    "Sorry for the last minute pull request, there's was a change that
    didn't get pulled into for-next until two weeks ago and I wanted to
    give it some bake time.

    Summary:

    Rework and error handling fixes, primarily in the fscatch and fd
    transports"

    * tag 'for-linus-4.5-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
    fs/9p: use fscache mutex rather than spinlock
    9p: trans_fd, bail out if recv fcall if missing
    9p: trans_fd, read rework to use p9_parse_header
    net/9p: Add device name details on error

    Linus Torvalds
     
  • Pull Ceph updates from Sage Weil:
    "The two main changes are aio support in CephFS, and a series that
    fixes several issues in the authentication key timeout/renewal code.

    On top of that are a variety of cleanups and minor bug fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    libceph: remove outdated comment
    libceph: kill off ceph_x_ticket_handler::validity
    libceph: invalidate AUTH in addition to a service ticket
    libceph: fix authorizer invalidation, take 2
    libceph: clear messenger auth_retry flag if we fault
    libceph: fix ceph_msg_revoke()
    libceph: use list_for_each_entry_safe
    ceph: use i_size_{read,write} to get/set i_size
    ceph: re-send AIO write request when getting -EOLDSNAP error
    ceph: Asynchronous IO support
    ceph: Avoid to propagate the invalid page point
    ceph: fix double page_unlock() in page_mkwrite()
    rbd: delete an unnecessary check before rbd_dev_destroy()
    libceph: use list_next_entry instead of list_entry_next
    ceph: ceph_frag_contains_value can be boolean
    ceph: remove unused functions in ceph_frag.h

    Linus Torvalds
     
  • Pull SMB3 fixes from Steve French:
    "A collection of CIFS/SMB3 fixes.

    It includes a couple bug fixes, a few for improved debugging of
    cifs.ko and some improvements to the way cifs does key generation.

    I do have some additional bug fixes I expect in the next week or two
    (to address a problem found by xfstest, and some fixes for SMB3.11
    dialect, and a couple patches that just came in yesterday that I am
    reviewing)"

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
    cifs_dbg() outputs an uninitialized buffer in cifs_readdir()
    cifs: fix race between call_async() and reconnect()
    Prepare for encryption support (first part). Add decryption and encryption key generation. Thanks to Metze for helping with this.
    cifs: Allow using O_DIRECT with cache=loose
    cifs: Make echo interval tunable
    cifs: Check uniqueid for SMB2+ and return -ESTALE if necessary
    Print IP address of unresponsive server
    cifs: Ratelimit kernel log messages

    Linus Torvalds
     
  • Like the Yoga 900 models the Lenovo Yoga 700 does not have a
    hw rfkill switch, and trying to read the hw rfkill switch through the
    ideapad module causes it to always reported blocking breaking wifi.

    This commit adds the Lenovo Yoga 700 to the no_hw_rfkill dmi list, fixing
    the wifi breakage.

    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1295272
    Tested-by:
    Cc: stable@vger.kernel.org
    Signed-off-by: Josh Boyer
    Signed-off-by: Darren Hart

    Josh Boyer
     
  • This patch combines all the telemetry file entries in MAINTAINERS via
    wildcard.

    Signed-off-by: Souvik Kumar Chakravarty
    Signed-off-by: Darren Hart

    Souvik Kumar Chakravarty
     
  • This patch fixes compile time warnings when CONFIG_PM_SLEEP
    is undefined. In this case sleep related counters are unused.

    Signed-off-by: Souvik Kumar Chakravarty
    Signed-off-by: Darren Hart

    Souvik Kumar Chakravarty
     
  • If we detect that there is nothing to do just set the flag and do not
    check if it was already set before. Races really do not matter. If the
    flag is set by any code then the shepherd will start dealing with the
    situation and reenable the vmstat workers when necessary again.

    Since commit 0eb77e988032 ("vmstat: make vmstat_updater deferrable again
    and shut down on idle") quiet_vmstat might update cpu_stat_off and mark
    a particular cpu to be handled by vmstat_shepherd. This might trigger a
    VM_BUG_ON in vmstat_update because the work item might have been
    sleeping during the idle period and see the cpu_stat_off updated after
    the wake up. The VM_BUG_ON is therefore misleading and no more
    appropriate. Moreover it doesn't really suite any protection from real
    bugs because vmstat_shepherd will simply reschedule the vmstat_work
    anytime it sees a particular cpu set or vmstat_update would do the same
    from the worker context directly. Even when the two would race the
    result wouldn't be incorrect as the counters update is fully idempotent.

    Reported-by: Sasha Levin
    Signed-off-by: Christoph Lameter
    Acked-by: Michal Hocko
    Cc: Johannes Weiner
    Cc: Tetsuo Handa
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

24 Jan, 2016

6 commits

  • Ralf Baechle
     
  • As most platforms implement the PROM serial interface prom_putchar()
    add a simple bridge to allow re-using this code for zboot.

    Signed-off-by: Alban Bedel
    Cc: Alex Smith
    Cc: Andrew Bresticker
    Cc: Wu Zhangjin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11811/
    Signed-off-by: Ralf Baechle

    Alban Bedel
     
  • Add dummy.o to the targets list, and fill targets automatically from
    $(vmlinuzobjs) to avoid having to maintain two lists.

    When building with XZ compression copy ashldi3.c to the build
    directory to use a different object file for the kernel and zboot.
    Without this the same object file need to be build with different
    flags which cause a rebuild at every run.

    Signed-off-by: Alban Bedel
    Cc: linux-mips@linux-mips.org
    Cc: Alex Smith
    Cc: Wu Zhangjin
    Cc: Andrew Bresticker
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11810/
    Signed-off-by: Ralf Baechle

    Alban Bedel
     
  • Allow BMIPS_GENERIC supported platforms to build GPIO controller
    drivers.

    Signed-off-by: Florian Fainelli
    Reviewed-by: Dragan Stancevic
    Cc: cernekee@gmail.com
    Cc: jaedon.shin@gmail.com
    Cc: gregory.0xf0@gmail.com
    Cc: Florian Fainelli
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/12019/
    Signed-off-by: Ralf Baechle

    Florian Fainelli
     
  • Remove bcm63xx_nvram_get_psi_size() as it now has no users.

    Signed-off-by: Simon Arlott
    Cc: David Woodhouse
    Cc: Brian Norris
    Cc: Kevin Cernekee
    Cc: Florian Fainelli
    Cc: Jonas Gorski
    Cc: Linux Kernel Mailing List
    Cc: MIPS Mailing List
    Cc: MTD Maling List
    Patchwork: https://patchwork.linux-mips.org/patch/11836/
    Signed-off-by: Ralf Baechle

    Simon Arlott
     
  • The "dual_image" and "inactive_flag" fields should be merged into a single
    "image_sequence" field.

    Signed-off-by: Simon Arlott
    Cc: David Woodhouse
    Cc: Brian Norris
    Cc: Kevin Cernekee
    Cc: Florian Fainelli
    Cc: Jonas Gorski
    Cc: Linux Kernel Mailing List
    Cc: MIPS Mailing List
    Cc: MTD Maling List
    Patchwork: https://patchwork.linux-mips.org/patch/11834/
    Signed-off-by: Ralf Baechle

    Simon Arlott