summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-11-30Merge tag 'v4.10-rockchip-defconfig64' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/arm64 Pull "Rockchip defconfig64 changes for 4.10" from Heiko Stübner: 64bit defconfig changes to allow arm64 Rockchip socs to basically boot. * tag 'v4.10-rockchip-defconfig64' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: arm64: defconfig: allow rk3399-based boards to boot from mmc and usb arm64: defconfig: enable RK808 components arm64: defconfig: enable I2C and DW MMC controller on rockchip platform
2016-11-30arm64: defconfig: drop GPIO_SYSFS on multiplatformsLinus Walleij
The sysfs ABI to GPIO is marked obsolete and should not be encouraged. Users should be encouraged to switch to using the character device. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2016-11-30ARM: defconfig: drop GPIO_SYSFS on multiplatformsLinus Walleij
The sysfs ABI to GPIO is marked obsolete and should not be encouraged. Users should be encouraged to switch to using the character device. Let's begin by removing it from the multi defconfigs. Then as time goes by I can aggressively remove it from other defconfigs. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2016-11-30Merge tag 'qcom-dts-for-4.10-2' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/dt Pull "Qualcomm Device Tree Changes for v4.10 - Part 2" from Andy Gross: * Add SDHC xo clk * tag 'qcom-dts-for-4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: ARM: dts: Add xo to sdhc clock node on qcom platforms
2016-11-30Merge tag 'qcom-arm64-for-4.10-2' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/dt64 Pull "Qualcomm ARM64 Updates for v4.10 - Part 2" from Andy Gross: * Add SDHC xo clk and 1.8V DDR support * tag 'qcom-arm64-for-4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: arm64: dts: qcom: msm8916: Add ddr support to sdhc1 ARM: dts: Add xo to sdhc clock node on qcom platforms
2016-11-30Merge tag 'qcom-drivers-for-4.10-2' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/drivers Pull "Qualcomm ARM Based Driver Updates for v4.10 - Part 2" from Andy Gross: * Fixup QCOM SCM to support MSM8996 * tag 'qcom-drivers-for-4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: firmware: qcom: scm: Return PTR_ERR when devm_clk_get fails firmware: qcom: scm: Remove core, iface and bus clocks dependency dt-bindings: firmware: scm: Add MSM8996 DT bindings
2016-11-30cpufreq: dt: Add support for zx296718Baoyou Xie
Add the compatible string for supporting the generic cpufreq driver on the ZTE's zx296718 SoC. Signed-off-by: Baoyou Xie <baoyou.xie@linaro.org> Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-11-30PM / OPP: Pass opp_table to dev_pm_opp_put_regulator()Stephen Boyd
Joonyoung Shim reported an interesting problem on his ARM octa-core Odoroid-XU3 platform. During system suspend, dev_pm_opp_put_regulator() was failing for a struct device for which dev_pm_opp_set_regulator() is called earlier. This happened because an earlier call to dev_pm_opp_of_cpumask_remove_table() function (from cpufreq-dt.c file) removed all the entries from opp_table->dev_list apart from the last CPU device in the cpumask of CPUs sharing the OPP. But both dev_pm_opp_set_regulator() and dev_pm_opp_put_regulator() routines get CPU device for the first CPU in the cpumask. And so the OPP core failed to find the OPP table for the struct device. This patch attempts to fix this problem by returning a pointer to the opp_table from dev_pm_opp_set_regulator() and using that as the parameter to dev_pm_opp_put_regulator(). This ensures that the dev_pm_opp_put_regulator() doesn't fail to find the opp table. Note that similar design problem also exists with other dev_pm_opp_put_*() APIs, but those aren't used currently by anyone and so we don't need to update them for now. Cc: 4.4+ <stable@vger.kernel.org> # 4.4+ Reported-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> [ Viresh: Wrote commit log and tested on exynos 5250 ] Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-11-30Merge tag 'samsung-dt64-4.10-2' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/dt64 Pull "Samsung DeviceTree arm64 second update for v4.10" from Krzysztof Kozłowski: 1. Add Performance Monitor Unit to Exynos7. 2. Add MFC, JPEG and Gscaler to Exynos5433 based TM2 board. 3. Cleanups and fixes for recently added TM2 and TM2E boards. * tag 'samsung-dt64-4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: arm64: dts: exynos: Enable HS400 mode for eMMC for TM2 arm64: dts: exynos: Add the mshc_2 node for supporting T-Flash arm64: dts: exynos: TM2 - add support for MFC video codec device arm64: dts: exynos: TM2 - add support for JPEG codec device arm64: dts: exynos: TM2 - add support for GScaler devices arm64: dts: exynos: TM2 - remove unused UART3 and set clocks directly on CMU arm64: dts: exynos: Assign parent clock of the clkout clock for TM2 board arm64: dts: exynos: Move FSYS CMU configuration from Exynos5433 dtsi to TM2 dts arm64: dts: exynos: Add missing parent clocks to audio block in Exynos5433 SoC arm64: dts: exynos: Fix FSYS CMU parent clocks in Exynos5433 SoC arm64: dts: exynos: Fix IRQ type flags for Exynos5433 SoC arm64: dts: Add ARM PMU node for exynos7
2016-11-30PM / Domains: Do not print PM domain add error message if EPROBE_DEFERGeert Uytterhoeven
EPROBE_DEFER is not an error, hence printing an error message like renesas_irqc e61c0000.interrupt-controller: failed to add to PM domain always-on: -517 may confuse the user. Suppress the error message in case of EPROBE_DEFER to fix this. Reported-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Simon Horman <horms+renesas@verge.net.au> Acked-by: Kevin Hilman <khilman@baylibre.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-11-30PM / QoS: Export dev_pm_qos_update_user_latency_toleranceAndrew Lutomirski
nvme wants a module parameter that overrides the default latency tolerance. This makes it easy for nvme to reflect that default in sysfs. Signed-off-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-11-30PM / QoS: Fix writing 'auto' to pm_qos_latency_tolerance_usAndrew Lutomirski
If it was already 'auto', then writing 'auto' again would incorrectly fail. Signed-off-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-11-30PM / QoS: Improve sysfs pm_qos_latency_tolerance validationAndrew Lutomirski
Negative values are special. Don't let users write them directly. Signed-off-by: Andy Lutomirski <luto@kernel.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2016-11-30Merge tag 'samsung-dt-4.10-2' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/dt Pull "Samsung DeviceTree second update for v4.10" from Krzysztof Kozłowski: 1. Cleanups in MSHC nodes. 2. Enable ADC on Odroid boards. 3. Fix interrupt flags on recently added DMA sound nodes in Exynos5410. * tag 'samsung-dt-4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: dts: exynos: Remove the cd-gpios property for eMMC of Odroid XU3/4 ARM: dts: exynos: Specify snps, dwmac in compatible string for gmac ARM: dts: exynos: Fix invalid GIC interrupt flags in audio block of Exynos5410 ARM: dts: exynos: Add ADCs on 4412 and 5422 based odroid boards. ARM: dts: exynos: Replace "clock-freq-min-max" with "max-frequency"
2016-11-30Merge tag 'arm-soc/for-4.10/defconfig-arm64' of ↵Arnd Bergmann
http://github.com/Broadcom/stblinux into next/arm64 Pull "Broadcom defconfig-arm64 changes for 4.10" from Florian Fainelli: This pull request contains Broadcom ARM64-based SoCs defconfig changes for 4.10, please pull the following changes: - Eric updates the ARMv8 defconfig to contain everything that is needed to run a 64-bit kernel on the Raspberry Pi 3 - Scott enables the standard AT25 EEPROM driver as module for the ARM64 defconfig - Martin enables the Raspberry Pi Thermal driver in the ARM64 defconfig * tag 'arm-soc/for-4.10/defconfig-arm64' of http://github.com/Broadcom/stblinux: ARM64: bcm2835: add thermal driver to default config arm64: defconfig: enable EEPROM_AT25 config option arm64: Add BCM2835 (Raspberry Pi 3) support to the defconfig
2016-11-30Merge tag 'arm-soc/for-4.10/defconfig' of ↵Arnd Bergmann
http://github.com/Broadcom/stblinux into next/defconfig Pull "Broadcom defconfig changes for 4.10" from Florian Fainelli: This pull request contains Broadcom ARM-based defconfig changes for 4.10, please pull the following: - Florian updates the multi_v7_defconfig with the relevant basic drivers needed for the Broadcom BCM5301x (Northstar) SoCs to reboot, have PCIe, and Ethernet - Martin enables the Raspberry Pi thermal driver in bcm2835_defconfig * tag 'arm-soc/for-4.10/defconfig' of http://github.com/Broadcom/stblinux: ARM: bcm2835: add thermal driver to default config ARM: multi_v7_defconfig: Enable BCM47xx/BCM5301x drivers
2016-11-30Merge tag 'arm-soc/for-4.10/maintainers-arm64' of ↵Arnd Bergmann
http://github.com/Broadcom/stblinux into next/arm64 Merge "Broadcom maintainers-arm64 changes for 4.10" from Florian Fainelli: This pull request contains MAINTAINERS file updates for Broadcom ARM64 entries, please pull: - Jayachandran updates his email address for the Broadcom Vulcan entry * tag 'arm-soc/for-4.10/maintainers-arm64' of http://github.com/Broadcom/stblinux: MAINTAINERS: Update Broadcom Vulcan maintainer email
2016-11-30soc: ti: qmss: fix the case when !SMPGrygorii Strashko
The irq_set_affinity_hint() will always fail when !SMP and Networking will fail on Keystone 2 devices in this case. Hence, fix by ignoring IRQ affinity settings when !SMP. Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Acked-by: Santosh Shilimkar <ssantosh@kernel.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2016-11-30rtc: twl: make driver DT onlyNicolae Rosia
Since there are no platform based users and all users of this code are TI OMAP-based which is DT only, it makes sense to remove unused code. Signed-off-by: Nicolae Rosia <Nicolae_Rosia@mentor.com> Tested-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
2016-11-30rtc: twl: kill static variablesNicolae Rosia
The current code uses static variables which prevent the use of multiple rtc twl instances. We also make it clear that this driver supports only TWL4030 and TWL6030 classes. Signed-off-by: Nicolae Rosia <Nicolae_Rosia@mentor.com> Tested-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
2016-11-30macvtap: handle ubuf refcount correctly when meet errorsJason Wang
We trigger uarg->callback() immediately after we decide do datacopy even if caller want to do zerocopy. This will cause the callback (vhost_net_zerocopy_callback) decrease the refcount. But when we meet an error afterwards, the error handling in vhost handle_tx() will try to decrease it again. This is wrong and fix this by delay the uarg->callback() until we're sure there's no errors. Signed-off-by: Jason Wang <jasowang@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30tun: handle ubuf refcount correctly when meet errorsJason Wang
We trigger uarg->callback() immediately after we decide do datacopy even if caller want to do zerocopy. This will cause the callback (vhost_net_zerocopy_callback) decrease the refcount. But when we meet an error afterwards, the error handling in vhost handle_tx() will try to decrease it again. This is wrong and fix this by delay the uarg->callback() until we're sure there's no errors. Reported-by: wangyunjian <wangyunjian@huawei.com> Signed-off-by: Jason Wang <jasowang@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30driver: ipvlan: Remove useless member mtu_adj of struct ipvl_devGao Feng
The mtu_adj is initialized to zero when alloc mem, there is no any assignment to mtu_adj. It is only used in ipvlan_adjust_mtu as one right value. So it is useless member of struct ipvl_dev, then remove it. Signed-off-by: Gao Feng <fgao@ikuai8.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30net: ethernet: ti: cpsw: fix ASSERT_RTNL() warning during resumeGrygorii Strashko
netif_set_real_num_tx/rx_queues() are required to be called with rtnl_lock taken, otherwise ASSERT_RTNL() warning will be triggered - which happens now during System resume from suspend: cpsw_resume() |- cpsw_ndo_open() |- netif_set_real_num_tx/rx_queues() |- ASSERT_RTNL(); Hence, fix it by surrounding cpsw_ndo_open() by rtnl_lock/unlock() calls. Cc: Dave Gerlach <d-gerlach@ti.com> Cc: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> Fixes: commit e05107e6b747 ("net: ethernet: ti: cpsw: add multi queue support") Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Reviewed-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> Tested-by: Dave Gerlach <d-gerlach@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30ethernet :mellanox :mlx5: Replace pci_pool_alloc by pci_pool_zallocSouptick Joarder
In alloc_cmd_box(), pci_pool_alloc() followed by memset will be replaced by pci_pool_zalloc() Signed-off-by: Souptick joarder <jrdr.linux@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30ethernet :mellanox :mlx4: Replace pci_pool_alloc by pci_pool_zallocSouptick Joarder
In mlx4_alloc_cmd_mailbox(), pci_pool_alloc() followed by memset will be replaced by pci_pool_zalloc() Signed-off-by: Souptick joarder <jrdr.linux@gmail.com> Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com> Reviewed-by: Tariq Toukan <tariqt@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30ARC: axs10x: really enable ARC PGUAlexey Brodkin
Up until now we had ARC PGU not enabled in axs10x defconfigs trying to not bloat kernel image again with yet another drivers and subsystems. This change configures ARC PGU (as well as DRM bits it depends on) to be built as a module and so those who need LCD screen to work on axs10x may bundle built .ko files in their target's file-system with help of the following command on host: ------------->8------------- make INSTALL_MOD_PATH=_path_to_target_fs_ modules_install ------------->8------------- and later on target with commands as simple as: ------------->8------------- modprobe adv7511.ko modprobe arcpgu.ko ------------->8------------- get LCD working. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-11-30ARC: rename Zebu platform support to HAPSVineet Gupta
There are more ARC Linux HAPS users than Zebu ones. Same kernel would work fine on both, even with embedded DT, assuming the FPGA bitfile configuration is same Suggested-by: Francois Bedard <fbedard@ynopsys.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-11-30clocksource: nps: avoid maybe-uninitialized warningArnd Bergmann
We get a harmless false-positive warning with the newly added nps clocksource driver: drivers/clocksource/timer-nps.c: In function 'nps_setup_clocksource': drivers/clocksource/timer-nps.c:102:6: error: 'nps_timer1_freq' may be used uninitialized in this function [-Werror=maybe-uninitialized] Gcc here fails to identify that IS_ERR() is only true if PTR_ERR() has a nonzero value. Using PTR_ERR_OR_ZERO() to convert the result first makes this obvious and shuts up the warning. Fixes: 0ee4d9922df5 ("clocksource: Add clockevent support to NPS400 driver") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-11-30clocksource: Add clockevent support to NPS400 driverNoam Camus
Till now we used clockevent from generic ARC driver. This was enough as long as we worked with simple multicore SoC. When we are working with multithread SoC each HW thread can be scheduled to receive timer interrupt using timer mask register. This patch will provide a way to control clock events per HW thread. The design idea is that for each core there is dedicated register (TSI) serving all 16 HW threads. The register is a bitmask with one bit for each HW thread. When HW thread wants that next expiration of timer interrupt will hit it then the proper bit should be set in this dedicated register. When timer expires all HW threads within this core which their bit is set at the TSI register will be interrupted. Driver can be used from device tree by: compatible = "ezchip,nps400-timer0" <-- for clocksource compatible = "ezchip,nps400-timer1" <-- for clockevent Note that name convention for timer0/timer1 was taken from legacy ARC design. This design is our base before adding HW threads. For backward compatibility we keep "ezchip,nps400-timer" for clocksource Signed-off-by: Noam Camus <noamca@mellanox.com> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Acked-by: Rob Herring <robh@kernel.org>
2016-11-30clocksource: update "fn" at CLOCKSOURCE_OF_DECLARE() of nps400 timerNoam Camus
nps_setup_clocksource() should take node as only argument as defined by typedef int (*of_init_fn_1_ret)(struct device_node *) Therefore need to replace: int __init nps_setup_clocksource(struct device_node *node, struct clk *clk) with int __init nps_setup_clocksource(struct device_node *node) This patch also serve as preparation for next patch which add support for clockevents to nps400. Specifically we add new function nps_get_timer_clk() to serve clocksource and later clockevent registration. Signed-off-by: Noam Camus <noamca@mellanox.com> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
2016-11-30soc: Support for NPS HW schedulingNoam Camus
This new header file is for NPS400 SoC (part of ARC architecture). The header file includes macros for save/restore of HW scheduling. The control of HW scheduling is achieved by writing core registers. This code was moved from arc/plat-eznps so it can be used from drivers/clocksource/, available only for CONFIG_EZNPS_MTM_EXT. Signed-off-by: Noam Camus <noamca@mellanox.com> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
2016-11-30clocksource: import ARC timer driverVineet Gupta
This adds support for - CONFIG_ARC_TIMERS : legacy 32-bit TIMER0 and TIMER1 which count UP from @CNT to @LIMIT, before optionally triggering an interrupt. These are programmed using ARC auxiliary register interface. These are present in all ARC cores (ARC700 and ARC HS38) TIMER0 serves as clockevent for all ARC linux builds. TIMER1 is used for clocksource in arc700 builds. - CONFIG_ARC_TIMERS_64BIT: 64-bit counters, RTC and GFRC found in ARC HS38 cores. These are independnet IP blocks with different programming model respectively. Link: http://lkml.kernel.org/r/20161111231132.GA4186@mai Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-11-30ARC: breakout timer include code into separate header ...Vineet Gupta
... which allows for use in drivers/clocksource later Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-11-30ARC: move mcip.h into include/soc and adjust the includesVineet Gupta
Also remove the dependency on ARCv2, to increase compile coverage for !ARCV2 builds Acked-by: Daniel Lezcano <daniel.lezcnao@linaro.org> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-11-30ARC: breakout aux handling into a separate headerVineet Gupta
ARC timers use aux registers for programming and this paves way for moving ARC timer drivers into drivers/clocksource Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-11-30ARC: time: move time_init() out of the driverVineet Gupta
to allow future git mv of the driver into drivers/clocksource Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-11-30ARC: timer: gfrc, rtc: build under same option (64-bit timers)Vineet Gupta
The original distinction was done as they were developed at different times and primarily because they are specific to UP (RTC) and SMP (GFRC). But given that driver handles that at runtime, (i.e. not allowing RTC as clocksource in SMP), we can simplify things a bit. Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-11-30ARC: timer: gfrc, rtc: Read BCR to detect whether hardware exists ...Vineet Gupta
... don't rely on cpuinfo populated in arc boot code. This paves way for moving this code in drivers/clocksource/ And while at it, convert the WARN() to pr_warn() as sugested by Daniel Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-11-30ARC: timer: gfrc, rtc: deuglify big endian codeVineet Gupta
A standard "C" shift will be handled appropriately by the compiler depending on the endian for the build. So we don't need the explicit distinction in code Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
2016-11-30net: ipv4: Don't crash if passing a null sk to ip_rt_update_pmtu.Lorenzo Colitti
Commit e2d118a1cb5e ("net: inet: Support UID-based routing in IP protocols.") made __build_flow_key call sock_net(sk) to determine the network namespace of the passed-in socket. This crashes if sk is NULL. Fix this by getting the network namespace from the skb instead. Fixes: e2d118a1cb5e ("net: inet: Support UID-based routing in IP protocols.") Reported-by: Erez Shitrit <erezsh@dev.mellanox.co.il> Signed-off-by: Lorenzo Colitti <lorenzo@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30Merge tag 'pwm/for-4.9' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm Pull pwm fixes from Thierry Reding: "This contains two one-line fixes for issues that were introduced in v4.9-rc1" * tag 'pwm/for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: pwm: Fix device reference leak pwm: meson: Add missing spin_lock_init()
2016-11-30bpf: add test for the verifier equal logic bugJosef Bacik
This is a test to verify that bpf: fix states equal logic for varlen access actually fixed the problem. The problem was if the register we added to our map register was UNKNOWN in both the false and true branches and the only thing that changed was the range then we'd incorrectly assume that the true branch was valid, which it really wasnt. This tests this case and properly fails without my fix in place and passes with it in place. Signed-off-by: Josef Bacik <jbacik@fb.com> Acked-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30bpf: fix states equal logic for varlen accessJosef Bacik
If we have a branch that looks something like this int foo = map->value; if (condition) { foo += blah; } else { foo = bar; } map->array[foo] = baz; We will incorrectly assume that the !condition branch is equal to the condition branch as the register for foo will be UNKNOWN_VALUE in both cases. We need to adjust this logic to only do this if we didn't do a varlen access after we processed the !condition branch, otherwise we have different ranges and need to check the other branch as well. Fixes: 484611357c19 ("bpf: allow access into map value arrays") Reported-by: Jann Horn <jannh@google.com> Signed-off-by: Josef Bacik <jbacik@fb.com> Acked-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30netfilter: arp_tables: fix invoking 32bit "iptable -P INPUT ACCEPT" failed ↵Hongxu Jia
in 64bit kernel Since 09d9686047db ("netfilter: x_tables: do compat validation via translate_table"), it used compatr structure to assign newinfo structure. In translate_compat_table of ip_tables.c and ip6_tables.c, it used compatr->hook_entry to replace info->hook_entry and compatr->underflow to replace info->underflow, but not do the same replacement in arp_tables.c. It caused invoking 32-bit "arptbale -P INPUT ACCEPT" failed in 64bit kernel. -------------------------------------- root@qemux86-64:~# arptables -P INPUT ACCEPT root@qemux86-64:~# arptables -P INPUT ACCEPT ERROR: Policy for `INPUT' offset 448 != underflow 0 arptables: Incompatible with this kernel -------------------------------------- Fixes: 09d9686047db ("netfilter: x_tables: do compat validation via translate_table") Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Acked-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
2016-11-30Merge branch 'cpsw-per-channel-shaping'David S. Miller
Ivan Khoronzhuk says: ==================== cpsw: add per channel shaper configuration This series is intended to allow user to set rate for per channel shapers at cpdma level. This patchset doesn't have impact on performance. The rate can be set with: echo 100 > /sys/class/net/ethX/queues/tx-0/tx_maxrate Tested on am572xx Based on net-next/master ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30net: ethernet: ti: cpsw: split tx budget according between channelsIvan Khoronzhuk
Split device budget between channels according to channel rate. Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30net: ethernet: ti: cpsw: optimize end of poll cycleIvan Khoronzhuk
Check budget fullness only after it's updated and update channel mask only once to keep budget balance between channels. It's also needed for farther changes. Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30net: ethernet: ti: cpsw: add .ndo to set per-queue rateIvan Khoronzhuk
This patch allows to rate limit queues tx queues for cpsw interface. The rate is set in absolute Mb/s units and cannot be more a speed an interface is connected with. The rate for a tx queue can be tested with: ethtool -L eth0 rx 4 tx 4 echo 100 > /sys/class/net/eth0/queues/tx-0/tx_maxrate echo 200 > /sys/class/net/eth0/queues/tx-1/tx_maxrate echo 50 > /sys/class/net/eth0/queues/tx-2/tx_maxrate echo 30 > /sys/class/net/eth0/queues/tx-3/tx_maxrate tc qdisc add dev eth0 root handle 1: multiq tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip\ dport 5001 0xffff action skbedit queue_mapping 0 tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip\ dport 5002 0xffff action skbedit queue_mapping 1 tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip\ dport 5003 0xffff action skbedit queue_mapping 2 tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip\ dport 5004 0xffff action skbedit queue_mapping 3 iperf -c 192.168.2.1 -b 110M -p 5001 -f m -t 60 iperf -c 192.168.2.1 -b 215M -p 5002 -f m -t 60 iperf -c 192.168.2.1 -b 55M -p 5003 -f m -t 60 iperf -c 192.168.2.1 -b 32M -p 5004 -f m -t 60 Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-11-30net: ethernet: ti: davinci_cpdma: add set rate for a channelIvan Khoronzhuk
The cpdma has 8 rate limited tx channels. This patch adds ability for cpdma driver to use 8 tx h/w shapers. If at least one channel is not rate limited then it must have higher number, this is because the rate limited channels have to have higher priority then not rate limited channels. The channel priority is set in low-hi direction already, so that when a new channel is added with ethtool and it doesn't have rate yet, it cannot affect on rate limited channels. It can be useful for TSN streams and just in cases when h/w rate limited channels are needed. Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> Signed-off-by: David S. Miller <davem@davemloft.net>