1. 30 Dec, 2014 17 commits
    • David S. Miller's avatar
      Merge branch 'timecounter' · 5115ec96
      David S. Miller authored
      Richard Cochran says:
      
      ====================
      Time Counter fixes and improvements
      
      Several PTP Hardware Clock (PHC) drivers implement the clock in
      software using the timecounter/cyclecounter code. This series adds one
      simple improvement and one more subtle fix to the shared timecounter
      facility. Credit for this series goes to Janusz Użycki, who pointed
      the issues out to me off list.
      
      Patch #1 simply move the timecounter code into its own file. When
      working on this series, it was really annoying to see half the kernel
      recompile after every tweak to the timecounter stuff. There is no
      reason to keep this together with the clocksource code.
      
      Patch #2 implements an improved adjtime() method, and patches 3-10
      convert all of the drivers over to the new method.
      
      Patch #11 fixes a subtle but important issue with the timecounter WRT
      frequency adjustment. As it stands now, a timecounter based PHC will
      exhibit a variable frequency resolution (and variable time error)
      depending on how often the clock is read.
      
      In timecounter_read_delta(), the expression
      
         (delta * cc->mult) >> cc->shift;
      
      can lose resolution from the adjusted value of 'mult'. If the value
      of 'delta' is too small, then small changes in 'mult' have no effect.
      However, if the delta value is large enough, then small changes in
      'mult' will have an effect.
      
      Reading the clock too often means smaller 'delta' values which in turn
      will spoil the fine adjustments made to 'mult'. Up until now, this
      effect did not show up in my testing. The following example explains
      why.
      
      The CPTS has an input clock of 250 MHz, and the clock source uses
      mult=0x80000000 and shift=29, making the ticks to nanoseconds
      conversion like this:
      
         ticks * 2^31
         ------------
             2^29
      
      Imagine what happens if the clock is read every 10 milliseconds. Ten
      milliseconds are about 2500000 ticks, which corresponds to about 21
      bits. The product in the numerator has then 52 bits. After the shift
      operation, 23 bits are preserved. This results in a frequency
      adjustment resolution of about 0.1 ppm (not _too_ bad.)
      
      A frequency resolution of 1 ppm requires 20 bits.
      A frequency resolution of 1 ppb requires 30 bits.
      
      For the 250 MHz CPTS clock, reading every 4 seconds yields a 1 ppb
      resolution (which is the finest that our API allows).
      
      However, the error can be much higher if the clock is read too often
      or if time stamps occur close in time to read operations. In general
      it is really not acceptable to allow the rate of clock readings to
      influence the clock accuracy.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5115ec96
    • Richard Cochran's avatar
      timecounter: keep track of accumulated fractional nanoseconds · 2eebdde6
      Richard Cochran authored
      The current timecounter implementation will drop a variable amount
      of resolution, depending on the magnitude of the time delta. In
      other words, reading the clock too often or too close to a time
      stamp conversion will introduce errors into the time values. This
      patch fixes the issue by introducing a fractional nanosecond field
      that accumulates the low order bits.
      Reported-by: default avatarJanusz Użycki <j.uzycki@elproma.com.pl>
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2eebdde6
    • Richard Cochran's avatar
      net: cpts: convert to timecounter adjtime. · f25a30be
      Richard Cochran authored
      This patch changes the driver to use the new and improved method
      for adjusting the offset of a timecounter.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f25a30be
    • Richard Cochran's avatar
      net: mlx4: convert to timecounter adjtime. · ce51ff09
      Richard Cochran authored
      This patch changes the driver to use the new and improved method
      for adjusting the offset of a timecounter.
      
      Compile tested only.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ce51ff09
    • Richard Cochran's avatar
      net: ixgbe: convert to timecounter adjtime. · 826ef90d
      Richard Cochran authored
      This patch changes the driver to use the new and improved method
      for adjusting the offset of a timecounter.
      
      Compile tested only.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Acked-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      826ef90d
    • Richard Cochran's avatar
      net: igb: convert to timecounter adjtime. · 5ee698e3
      Richard Cochran authored
      This patch changes the driver to use the new and improved method
      for adjusting the offset of a timecounter.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Acked-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5ee698e3
    • Richard Cochran's avatar
      net: e1000e: convert to timecounter adjtime. · f4de2b95
      Richard Cochran authored
      This patch changes the driver to use the new and improved method
      for adjusting the offset of a timecounter.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Acked-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f4de2b95
    • Richard Cochran's avatar
      net: fec: convert to timecounter adjtime. · 59e16961
      Richard Cochran authored
      This patch changes the driver to use the new and improved method
      for adjusting the offset of a timecounter.
      
      Compile tested only.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      59e16961
    • Richard Cochran's avatar
      net: bnx2x: convert to timecounter adjtime. · 2e5601f9
      Richard Cochran authored
      This patch changes the driver to use the new and improved method
      for adjusting the offset of a timecounter.
      
      Compile tested only.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2e5601f9
    • Richard Cochran's avatar
      net: xgbe: convert to timecounter adjtime. · 8b976e97
      Richard Cochran authored
      This patch changes the driver to use the new and improved method
      for adjusting the offset of a timecounter.
      
      Compile tested only.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8b976e97
    • Richard Cochran's avatar
      timecounter: provide a helper function to shift the time. · 796c1efd
      Richard Cochran authored
      Some PTP Hardware Clock drivers use a struct timecounter to represent
      their clock. To adjust the time by a given offset, these drivers all
      perform a two step read/write of their timecounter. However, it is
      better and simpler just to adjust the offset in one step. This patch
      introduces a little routine to help drivers implement the adjtime
      method.
      Suggested-by: default avatarJanusz Użycki <j.uzycki@elproma.com.pl>
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      796c1efd
    • Richard Cochran's avatar
      time: move the timecounter/cyclecounter code into its own file. · 74d23cc7
      Richard Cochran authored
      The timecounter code has almost nothing to do with the clocksource
      code. Let it live in its own file. This will help isolate the
      timecounter users from the clocksource users in the source tree.
      Signed-off-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Acked-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      74d23cc7
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 2c90331c
      Linus Torvalds authored
      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
        ...
      2c90331c
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-3.19-fixes' of... · 6ab1e8de
      Linus Torvalds authored
      Merge tag 'linux-kselftest-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest fix from Shuah Khan:
       "Fix exec test compile warnings"
      
      * tag 'linux-kselftest-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/exec: Use %zu to format size_t
      6ab1e8de
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.samba.org/sfrench/cifs-2.6 · 5faa0154
      Linus Torvalds authored
      Pull CIFS fixes from Steve French:
       "A set of three minor cifs fixes"
      
      * 'for-linus' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: make new inode cache when file type is different
        Fix signed/unsigned pointer warning
        Convert MessageID in smb2_hdr to LE
      5faa0154
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · b9d4a35f
      Linus Torvalds authored
      Pull UDF & isofs fixes from Jan Kara:
       "A couple of UDF fixes of handling of corrupted media and one iso9660
        fix of the same"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        udf: Reduce repeated dereferences
        udf: Check component length before reading it
        udf: Check path length when reading symlink
        udf: Verify symlink size before loading it
        udf: Verify i_size when loading inode
        isofs: Fix unchecked printing of ER records
      b9d4a35f
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.19-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · df90dcd1
      Linus Torvalds authored
      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
      df90dcd1
  2. 29 Dec, 2014 12 commits
    • David S. Miller's avatar
      genetlink: A genl_bind() to an out-of-range multicast group should not WARN(). · dc97a1a9
      David S. Miller authored
      Users can request to bind to arbitrary multicast groups, so warning
      when the requested group number is out of range is not appropriate.
      
      And with the warning removed, and the 'err' variable properly given
      an initial value, we can remove 'found' altogether.
      Reported-by: default avatarSedat Dilek <sedat.dilek@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc97a1a9
    • Linus Torvalds's avatar
      Merge tag 'spi-v3.19-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 346eef2f
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A few driver specific fixes here, the DMA burst size increase in the
        spfi driver is a fix to make the hardware happier in some situations"
      
      * tag 'spi-v3.19-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: img-spfi: Increase DMA burst size
        spi: img-spfi: Enable controller before starting TX DMA
        spi: sh-msiof: Add runtime PM lock in initializing
      346eef2f
    • Linus Torvalds's avatar
      Merge tag 'regulator-v3.19-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 034496f4
      Linus Torvalds authored
      Pull one regulator fix from Mark Brown:
       "One fix here, a fix for the voltage mapping on one of the s2mps11
        regulators which broke systems using it including apparently the
        Gear 2 smartwatches"
      
      * tag 'regulator-v3.19-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: s2mps11: Fix dw_mmc failure on Gear 2
      034496f4
    • Linus Torvalds's avatar
      Merge tag 'mmc-v3.19-2' of git://git.linaro.org/people/ulf.hansson/mmc · 5e6c2c97
      Linus Torvalds authored
      Pull one MMC fix from Ulf Hansson:
       "MMC core:
      
         - Fix selection of buswidth for mmc hosts supporting 1-bit only"
      
      * tag 'mmc-v3.19-2' of git://git.linaro.org/people/ulf.hansson/mmc:
        mmc: core: stop trying to switch width when only one bit is supported
      5e6c2c97
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 4c5d4995
      Linus Torvalds authored
      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
        ...
      4c5d4995
    • Michal Hocko's avatar
      mm: get rid of radix tree gfp mask for pagecache_get_page · 45f87de5
      Michal Hocko authored
      Commit 2457aec6 ("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: default avatarDave Chinner <david@fromorbit.com>
      Signed-off-by: default avatarMichal Hocko <mhocko@suse.cz>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      45f87de5
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-video' · 651c3293
      Rafael J. Wysocki authored
      * acpi-video:
        ACPI / video: Add some Samsung models to disable_native_backlight list
      651c3293
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-domains', 'powercap' and 'pm-tools' · 4f2f2777
      Rafael J. Wysocki authored
      * 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
      4f2f2777
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpufreq' and 'pm-cpuidle' · ff23ab24
      Rafael J. Wysocki authored
      * 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
      ff23ab24
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-opp' · e0288b0e
      Rafael J. Wysocki authored
      * pm-opp:
        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
      e0288b0e
    • Alexandre Belloni's avatar
      mmc: core: stop trying to switch width when only one bit is supported · 1c2d26e3
      Alexandre Belloni authored
      mmc_select_bus_width() will try to switch to MMC_BUS_WIDTH_4 even if
      MMC_CAP_4_BIT_DATA and MMC_CAP_8_BIT_DATA are not set in host->caps.
      Return as soon as possible when those flags are not set
      
      Fixes: 577fb131 (mmc: rework selection of bus speed mode)
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@free-electrons.com>
      Cc: <stable@vger.kernel.org> # 3.17
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      1c2d26e3
    • Linus Torvalds's avatar
      Linux 3.19-rc2 · b7392d22
      Linus Torvalds authored
      b7392d22
  3. 28 Dec, 2014 4 commits
  4. 27 Dec, 2014 7 commits