Commit Graph

665443 Commits

Author SHA1 Message Date
Steven Rostedt (VMware)
32677207dc ktest: Fix child exit code processing
The child_exit errno needs to be shifted by 8 bits to compare against the
return values for the bisect variables.

Fixes: c5dacb88f0 ("ktest: Allow overriding bisect test results")
Cc: stable@vger.kernel.org
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
2017-02-07 12:05:25 -05:00
Steven Rostedt (VMware)
2e07c9f55e ktest: Have POST_TEST run after the test has totally completed
The POST_TEST config is to be executed after a test has fully compeleted,
whether the test passed or failed. It currently is executed at the moment
that the test has been decided if it failed or not. As the test does other
clean ups, it isn't truly finished. Move the POST_TEST execution to after
all the test cleanups have been done.

Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
2017-02-07 11:49:21 -05:00
Arnd Bergmann
8d1fb01df8 mlxsw: add psample dependency for spectrum
When PSAMPLE is a loadable module, spectrum must not be built-in:

drivers/net/built-in.o: In function `mlxsw_sp_rx_listener_sample_func':
spectrum.c:(.text+0xe357e): undefined reference to `psample_sample_packet'

This adds a Kconfig dependency to enforce usable configurations.

Fixes: 98d0f7b9ac ("mlxsw: spectrum: Add packet sample offloading support")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Yotam Gigi <yotamg@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 11:44:12 -05:00
Wei Yongjun
bb4005bae3 ipv6: sr: fix non static symbol warnings
Fixes the following sparse warnings:

net/ipv6/seg6_iptunnel.c:58:5: warning:
 symbol 'nla_put_srh' was not declared. Should it be static?
net/ipv6/seg6_iptunnel.c:238:5: warning:
 symbol 'seg6_input' was not declared. Should it be static?
net/ipv6/seg6_iptunnel.c:254:5: warning:
 symbol 'seg6_output' was not declared. Should it be static?

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 11:42:35 -05:00
Wei Yongjun
89d82452d1 net/sched: act_mirred: remove duplicated include from act_mirred.c
Remove duplicated include.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 11:42:34 -05:00
Wei Yongjun
fee402211f net: wan: slic_ds26522: Remove .owner field for driver
Remove .owner field if calls are used which set it automatically.

Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 11:41:15 -05:00
Wei Yongjun
c3afa99553 net: wan: slic_ds26522: Use module_spi_driver to simplify the code
module_spi_driver() makes the code simpler by eliminating
boilerplate code.

Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 11:41:15 -05:00
Arnd Bergmann
d2aff02f92 3rd round of improvements for Exynos PMU driver for v4.11:
1. Add defines in header for future patches changing the pad
    retention control.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYk3SrAAoJEME3ZuaGi4PXlEQP/A9kCbss4TwvtbPmhdqRRxST
 eAJpGvCBsxXtSj9oJRGac0SVKF1xcYf7LrZl+jWURBvCL+67TDhkkYvwPCpLgQzN
 Fo1dqNMVKIGrmZCNBNGLXvVB1hPHzPrCXRW2S8pmJoeo1/kySSBq/OSzjN3XfBFY
 tK5tkaENFLkcREG+GeTvdhdsI8OC9PG96RFKQ/NqjOlby2IZbIl58I5fjG4Vgx9e
 vZerA/AU1wfEj0yYEaxpWIbqUKOWjD1K4CJm0lyZC5fBeTNy/BcIlAnatpL8+7YO
 wig3aZa58lFVIMWf+CcXK9C1yY5Ucii/Opx0r9yCsPN9emrxGtnkV0DCCfLFW8zV
 yGVR6O/ZIPOY7Ylr1cVg3dO7LVmBn/jpAOeXjL0Zt4QBAg45MBLIqxrA/UEgxYHh
 ahcetCyukJXz9UecyHzPvvpsb0kWQ619Axa6q/j3HoAsy2ob2RUdLPWvMurUnlpl
 KoVhwjGdfP1YgxHF1nN5I5k3iISMBmvsSCHTX9baAgpgVV/5Ji5kfGJ7fHLHa+wL
 Bd6syBs2JUlDIcGHYgEASWDyVLJexT2/HxGa2bBeJihcwh2Nc0Iimmn398G6nhAj
 f2fNK4O3VvkN+gXdUQL+szZ/ehi2OrcW5ALOf0W0NeKJCHRqnu/+kIp44DrWYj2V
 ecBGqqNoP4gYkcEFeqsx
 =aTZv
 -----END PGP SIGNATURE-----

Merge tag 'samsung-drivers-soc-pmu-4.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/drivers

Pull "soc: samsung: pmu for v4.11, third round" from Krzysztof Kozłowski:

3rd round of improvements for Exynos PMU driver for v4.11:
1. Add defines in header for future patches changing the pad
   retention control.

* tag 'samsung-drivers-soc-pmu-4.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  soc: samsung: pmu: Add register defines for pad retention control
2017-02-07 17:22:15 +01:00
Arnd Bergmann
28eedd15ec Improve the PM domains driver for Exynos by displaying a user-friendly name of
power domain.  Till now, the name of node from DT was used which mostly is just
 "power-domain".  We need more than that.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYk3brAAoJEME3ZuaGi4PXlLQP/jmi+uKo+1Ofc/X4r5flKuy7
 s66sklaVUTFdZVDe7WjR8TW8alau90yM7mXSLi6iQkSBzoRgmkfB1j97PdzKiYj8
 TKVGOfQSLcL/PqD0og+4yicPgaD2YfIJyeE5E0k3ETxQDi3+EVxdvcsjNEsYKA3n
 V4TuWlTTbdOSRlqQBmH+VvECWMaYrT0Fn2j7lUX4jeAqlAj6NsQ7Ogq8pGPhikmF
 rp2e/SMP1ZdylPsmHTTynpLE0PlkQ8Rwz2vYAu0YDL0rTCgqhIqctwZqPJ1pHwHW
 /pw6X2nssPz3nzySWAvRQ3oyW2akWMq2Xibuu7RVI+iEj+rR5AeI6UUTZJ8DyY1H
 uhzvXLMJ0XgkN5sobC+WUmA8T17s9tsYQHyFIOZdG8RmPwNa8zP4lJmBG4xOyfNG
 xAJl/KhGJHIOrDotGpiovf8MqNEn/jPuiSK0jsFo2sLDNhdxJnOkcchAyGIGUGh1
 b74TCgtMNTES50BZbWm0ijaSqk10CrI8wgkVomNLXdW7eGLLvISzLD5Fz/SNQev7
 OJporWHONEFWWiH90hPns1ENW3KuEK29yZto9KtyojPAgWBCjSN2/X4vjH3h3rTv
 Vca8ArtboFmLA1175oqvX+g6BGw4A0iCvQCgrZoTNRZSTwrbC4IEgImtWpg+n6YO
 E5CNm5MIGjPlz9tSu1mX
 =1AMJ
 -----END PGP SIGNATURE-----

Merge tag 'samsung-drivers-soc-pm-domains-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/drivers

Pull "soc: samsung: pm_domains for v4.11" from Krzysztof Kozłowski:

Improve the PM domains driver for Exynos by displaying a user-friendly name of
power domain.  Till now, the name of node from DT was used which mostly is just
"power-domain".  We need more than that.

* tag 'samsung-drivers-soc-pm-domains-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  soc: samsung: pm_domains: Read domain name from the new label property
  soc: samsung: pm_domains: Remove message about failed memory allocation
  soc: samsung: pm_domains: Remove unused name field
  soc: samsung: pm_domains: Use full names in subdomains registration log
2017-02-07 17:20:07 +01:00
Eric Dumazet
69629464e0 udp: properly cope with csum errors
Dmitry reported that UDP sockets being destroyed would trigger the
WARN_ON(atomic_read(&sk->sk_rmem_alloc)); in inet_sock_destruct()

It turns out we do not properly destroy skb(s) that have wrong UDP
checksum.

Thanks again to syzkaller team.

Fixes : 7c13f97ffd ("udp: do fwd memory scheduling on dequeue")
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
Acked-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 11:19:00 -05:00
Arnd Bergmann
57ac490466 Reset controller changes for v4.11, part 2
- Fix missing NULL check in reset_control_put for optional reset control
   conversion
 - Make zx2967 driver explicitly non-modular
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCAA1FiEEBsBxhV1FaKwXuCOBUMKIHHCeYOsFAliTbCwXHHAuemFiZWxA
 cGVuZ3V0cm9uaXguZGUACgkQUMKIHHCeYOs2VBAAwEXhypAzCYTHXa9ky2eb3hfE
 4IiybwfXJUtueLQ/FlkdUAudf6euTqBXFA13LR4glVwyOWEh2uocywN7Ez8ZKtEi
 1uEjHansuEd2l5gUzV6VK0K4EtMsbHRKCcsZM75Q7x6oiRYBTqZaEmvZ8q2apSGR
 F+stu7Hrlbr1/s9Qe1iOIISlZT39RW7hNAcIoHLi3EVZh0fzrIKOLx/sK9lNHXMH
 DNnubpbV4NOymXG97E05ayxdxtLEPXhOFC4sWfDphukf4eHcRGLZz5Bpu2ZDm5S5
 NIOtSFoAKNI0fvpr45K8ougSOCmDt3FNq4bxUd6eDL3z1weMlYvaMFQSg3TcAloi
 09L8fFDZraAJmFTZsoE5of2ibP86RoIsb5jwyCSrT1Vvf3Hb0gdRNajAxg1gkyI5
 zi1vkv8IgQSQ37+ko70ioTzL2FxoPpLIMICTr4AyCYVdC5jjto0c7lpp5IvlUs/C
 Yd9W+1tEgL7GbF/yXoiqabXHcfyZVYTj6sgfImQSj3gUlyAzHKnwCmDcYQELTPeO
 jFmQyUBUjA8pNQl8iSjLKLXexTrqnDfEMtBRCTFUsvooOnohx/6be4eu3c3VkaZo
 rQ3jvjyo3++xFeK1xe/v1iUA77Z2sjHlip3kp4NF1n9t41xJfEhxHH94E0S8cSkY
 FY4BQBhTZSv4VzIU0AU=
 =/UJU
 -----END PGP SIGNATURE-----

Merge tag 'reset-for-4.11-2' of git://git.pengutronix.de/pza/linux into next/drivers

Pull "Reset controller changes for v4.11, part 2" from Philipp Zabel:

- Fix missing NULL check in reset_control_put for optional reset control
  conversion
- Make zx2967 driver explicitly non-modular

* tag 'reset-for-4.11-2' of git://git.pengutronix.de/pza/linux:
  reset: make zx2967 explicitly non-modular
  reset: core: fix reset_control_put
2017-02-07 17:18:29 +01:00
Arnd Bergmann
4f3a468666 Allwinner defconfig changes for 4.11
A single patch to enable the thermal DT support in sunxi_defconfig
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYkE92AAoJEBx+YmzsjxAgVTsQALMN7wtP9t3aAeE3xdxIOhMU
 afp6FbwL8Wxm3wxpN8WnZcMBVsHrCjI7BGhUDOg1AeT826TOQ8kZWXsKemUNGRSc
 iuvc3bLWCWR8z8/3NKH6uqEuHEKimNj681KHoIMNVYGuROvxYaPQZRq/qXl2nyjq
 XnsNh470IzSMLTAWz0afWgplAVMKAcmHq3O7YW37uAM2tcNVMkpSkKHyoaNi7JQj
 kEUlWX2Fdv9HKWPjvv22ctglY/a9WydCNQL/I7Xp6ECo46ZsPgNTM6YdDsx9K3T3
 DLMmbBWnXebBe96XQLdmh9YN5OW3Qky7YuxSNIewzOtW6KfCgZGDh8bRkPsGL9R8
 U2J34zLiM2/zKdum73OzjPRUPq9fF8Tr94XAHWUHv3cReQ1ia6HWdBYv9bfxS2RN
 QNnwd7MOCms7TPResX1GXmKwBrPMUpBqDTrz6bM4yQU+s6LJUSy3V9O7syamOdlO
 5Vi2vzDxQpwrjbODXG3oNnjLkSBYM0iySYB0K7rzStrMFT8snuZivp31b4mwlOf4
 4Tf+5Zlr4q1XzQheY1W4qJsbkG1XA8I7vh/C1T2ZL/m1DapoADgg9GfODR9KJzBj
 LUAmMimENyMKo+UCcuWCdVMbNbo3UnFC+9Bl9CNQgOXxcGmxr388xZH7IITwZJRW
 jkoPNbMs60Ip+w/mcTGx
 =tqpm
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-defconfig-for-4.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/defconfig

Pull "Allwinner defconfig changes for 4.11" from Maxime Ripard:

A single patch to enable the thermal DT support in sunxi_defconfig

* tag 'sunxi-defconfig-for-4.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux:
  ARM: sunxi: Add CONFIG_THERMAL_OF
2017-02-07 17:12:27 +01:00
David S. Miller
521613c568 Merge branch 'dsa2-pdata'
Florian Fainelli says:

====================
net: dsa: Support for pdata in dsa2

This is not exactly new, and was sent before, although back then, I did not
have an user of the pre-declared MDIO board information, but now we do. Note
that I have additional changes queued up to have b53 register platform data for
MIPS bcm47xx and bcm63xx.

Yes I know that we should have the Orion platforms eventually be converted to
Device Tree, but until that happens, I don't want any remaining users of the
old "dsa" platform device (hence the previous DTS submissions for ARM/mvebu)
and, there will be platforms out there that most likely won't never see DT
coming their way (BCM47xx is almost 100% sure, BCM63xx maybe not in a distant
future).

We would probably want the whole series to be merged via David Miller's tree
to simplify things.

Thanks!

Changes in v5:

- dropped changes to drivers/base/ because after more than a month, we cannot
  get any answer from Greg KH

Changes in v4:

- Changed device_find_class() to device_find_in_class_name()
- Added kerneldoc above device_find_in_class_name() to explain what it does
  and the calling convention regarding device reference counts
- Changed dev_to_net_device to device_to_net_device() added comments
  about what it does and the caller conventions regarding reference counts

Changes in v3:

- Tested EPROBE_DEFER from a mockup MDIO/DSA switch driver and everything
  is fine, once the driver finally probes we have access to platform data
  as expected

- added comment above dsa_port_is_valid() that port->name is mandatory
  for platform data cases

- added an extra check in dsa_parse_member() for a NULL pdata pointer

- fixed a bunch of checkpatch errors and warnings

Changes in v2:

- Rebased against latest net-next/master

- Moved dev_find_class() to device_find_class() into drivers/base/core.c

- Moved dev_to_net_device into net/core/dev.c

- Utilize dsa_chip_data directly instead of dsa_platform_data

- Augmented dsa_chip_data to be multi-CPU port ready

Changes from last submission (few months back):

- rebased against latest net-next

- do not introduce dsa2_platform_data which was overkill and was meant to
  allow us to do exaclty the same things with platform data and Device Tree
  we use the existing dsa_platform_data instead

- properly register MDIO devices when the MDIO bus is registered and associate
  platform_data with them

- add a change to the Orion platform code to demonstrate how this can be used

Thank you
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:51:48 -05:00
Florian Fainelli
575e93f7b5 ARM: orion: Register DSA switch as a MDIO device
Utilize the ability to pass board specific MDIO bus information towards a
particular MDIO device thus allowing us to provide the per-port switch layout
to the Marvell 88E6XXX switch driver.

Since we would end-up with conflicting registration paths, do not register the
"dsa" platform device anymore.

Note that the MDIO devices registered by code in net/dsa/dsa2.c does not
parse a dsa_platform_data, but directly take a dsa_chip_data (specific
to a single switch chip), so we update the different call sites to pass
this structure down to orion_ge00_switch_init().

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:51:47 -05:00
Florian Fainelli
648ea01340 net: phy: Allow pre-declaration of MDIO devices
Allow board support code to collect pre-declarations for MDIO devices by
registering them with mdiobus_register_board_info(). SPI and I2C buses
have a similar feature, we were missing this for MDIO devices, but this
is particularly useful for e.g: MDIO-connected switches which need to
provide their port layout (often board-specific) to a MDIO Ethernet
switch driver.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:51:46 -05:00
Florian Fainelli
71e0bbde0d net: dsa: Add support for platform data
Allow drivers to use the new DSA API with platform data. Most of the
code in net/dsa/dsa2.c does not rely so much on device_nodes and can get
the same information from platform_data instead.

We purposely do not support distributed configurations with platform
data, so drivers should be providing a pointer to a 'struct
dsa_chip_data' structure if they wish to communicate per-port layout.

Multiple CPUs port could potentially be supported and dsa_chip_data is
extended to receive up to one reference to an upstream network device
per port described by a dsa_chip_data structure.

dsa_dev_to_net_device() increments the network device's reference count,
so we intentionally call dev_put() to be consistent with the DT-enabled
path, until we have a generic notifier based solution.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:51:45 -05:00
Florian Fainelli
14b89f36ee net: dsa: Rename and export dev_to_net_device()
In preparation for using this function in net/dsa/dsa2.c, rename the function
to make its scope DSA specific, and export it.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:51:45 -05:00
Andrew Lunn
a23b296198 net: dsa: mv88e6xxx: Refactor remaining port setup
Move the remaining port configuration code which varies per device
into port.c, using ops were necessary. This makes
mv88e6xxx_6185_family() and mv88e6xxx_6095_family() unused, so remove
them.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:48:06 -05:00
Andrew Lunn
cf3e80df13 net: dsa: mv88e6xxx: Implement Clause 45 access to SMI devices
The mv88e6390 MDIO bus controllers can support for clause 45 accesses.
The internal SERDES interfaces need this, and it is likely external
10GHz PHYs will be clause 45.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:47:11 -05:00
David S. Miller
8661a631e1 Merge branch 'mv88e6390-CMODE'
Andrew Lunn says:

====================
Set the CMODE for mv88e6390 ports

The mv88e6390 ports 9 & 10 allow there CMODE to be set. CMODE is part
of what linux defines as phy-mode. Add the needed phy-modes to linux,
and add code which will act upon the phy-mode property to configure
the switch port.

These patches have been posted before as part of a bigger patchset
which has now been broken up. I've added the received reviewed by
tags, and added device tree documentation.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:34:43 -05:00
Andrew Lunn
f39908d3b1 net: dsa: mv88e6xxx: Set the CMODE for mv88e6390 ports 9 & 10
Unlike most ports, ports 9 and 10 of the 6390X family have configurable
PHY modes. Set the mode as part of adjust_link().

Ordering is important, because the SERDES interfaces connected to
ports 9 and 10 can be split and assigned to other ports. The CMODE has
to be correctly set before the SERDES interface on another port can be
configured. Such configuration is likely to be performed in
port_enable() and port_disabled(), called on slave_open() and
slave_close().

The simple case is port 9 and 10 are used for 'CPU' or 'DSA'. In this
case, the CMODE is set via a phy-mode in dsa_cpu_dsa_setup(), which is
called early in the switch setup.

When ports 9 or 10 are used as user ports, and have a fixed-phy, when
the fixed fixed-phy is attached, dsa_slave_adjust_link() is called,
which results in the adjust_link function being called, setting the
cmode. The port_enable() will for other ports will be called much
later.

When ports 9 or 10 are used as user ports and have a real phy attached
which does not use all the available SERDES interface, e.g. a 1Gbps
SGMII, there is currently no mechanism in place to set the CMODE of
the port from software. It must be hoped the stripping resistors are
correct.

At the same time, add a function to get the cmode. This will be needed
when configuring the SERDES interfaces.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:34:43 -05:00
Andrew Lunn
55601a8806 net: phy: Add 2000base-x, 2500base-x and rxaui modes
The mv88e6390 ports 9 and 10 supports some additional PHY modes. Add
these modes to the PHY core so they can be used in the binding.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:34:42 -05:00
Takashi Iwai
40ce4b5d70 ALSA: x86: Cache AUD_CONFIG register value
At enabling the audio, we modify AUD_CONFIG register bit 0.  So far,
it does read-modify-write procedure with a special hack for the
channel bits due to the silicon bug.  But we can optimize it by
remembering the AUD_CONFIG register value privately.  This simplifies
the things a lot.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-07 16:27:41 +01:00
Arnd Bergmann
be07af2900 This pull request contains Broadcom MAINTAINERS entries updates for 4.11:
- Eric updates the git repository for the BCM283x development
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYkmAnAAoJEIfQlpxEBwcEJOgP/i84KLY7plOQ4NGMrlCGPztV
 pQ6ahS/Kcg4tfJw1t65oixHreTo1De8PRvqjF4tyCKSCI2bQdKLS0NcyFHX5GBHb
 dnlI0Y27RO8sngXVqngHUw0cltsetgRk/NQfC3Mlx+63/Vel9soKPfz2VS5lzPw4
 5Uc4S+f0snhUutbI0ItA1gpdHPfn48BUJ9tpzpBVLzWMpNyJjv4RtgH4dbz/Z55D
 8lxACN2K0hoexgUV61IVcbXL4bGsSK5AB7ATydcCjPQ+1ImMg+mEP3qbzHk8YM2H
 jRuiddGkD2GRdfbT+c69dpjoPWlYIKBdTrwZW7Bj5c97TbErZ0wfJYZWGkHa2gFD
 j6seiwWWuHS+Z+IJQME4UFKhmzQ+1CevSEXNjz6Nd3OPVkcfOO23nvKjuPk3etXi
 OMk9ApxUAHwYjyGaa05cbN6w2cJnaXTEdu9VpFPJTV5TKTvw+1RL3A4GwZy/nn75
 5gE0/kRWR7O9ir8vd8P/NtQWACSK9djWcFsKt9fvdjAbEfEK9abZMbiOs0r/ds+l
 G1ALJjYiORobawgRLihAeiCTUkYxY+hXTe3cDQxXKi7lhZTRdI0NdV4K+6+qZ2HU
 eDX005bhxWmbpjwyj7x7SFFEMPYjIPfRk5GF+x67PFsEsJDWyr+MY8C7KtwYec/H
 bzI1JcgGZuVJMexsSxTS
 =cWbv
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-4.11/maintainers' of http://github.com/Broadcom/stblinux into next/soc

Pull "Broadcom maintainers changes for 4.11" from Florian Fainelli:

This pull request contains Broadcom MAINTAINERS entries updates for 4.11:

- Eric updates the git repository for the BCM283x development

* tag 'arm-soc/for-4.11/maintainers' of http://github.com/Broadcom/stblinux:
  MAINTAINERS: Update for the current location of the bcm2835 tree.
2017-02-07 16:23:55 +01:00
Arnd Bergmann
ef4968f453 Allwinner core changes for 4.11
Some patches to support two new SoCs: the H2+ and the V3s.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYkE5wAAoJEBx+YmzsjxAgPrkP/1ytDjHOhEvHyvBiHJkqrY9u
 zMAPbXl7MtUjRqHHq0otmDSbL8dPpWYxKI+5gv4mqTmhppxs3430rRxhP/56fB/g
 C4v1mL6LUc/mDcmYhIBxt03Ddq4fZCEbFzZp31r9+CqkduO0+WjsE7NgbUERb33r
 NJ/OfWc7k7auJYEtZMCiMwn8Y98EJofw+sNlPtsdtVZw0o96Tspd5xkV83bULN6r
 LQnBZMQZgmXrKglJrvCikIQPnVSsEtH0sN3xw4pr4sIuOf5VpHi33LnkJbftEq+V
 mJoLWTHODPB1VqH1hzceVHLBwXG3kMtbYGYXPJkTy8/eAVxF9Vj/YRls9+XQtFMc
 Pl/1LLP2z2OSIDiR/xMpMUEFtc1++q5TDepVGXdW6A3Dv9qhp/fjlIjLF6aUtbMP
 67qNw70rSbCcBw9EQAVG2yPM2MSU9lkwm3bb8MY2usduTBPh7huYbxlChZvATrL0
 063rJy4BkVwsm1LKcn7nCedDD6HUwcCwXhlklwWTMjY3AZ6CH0VVb5ynn87UkJPq
 fACRA6RvzpDETPzPm/ReasT8u30XKKKdKAd77EqZaYUjKWjvHcZ8oIKahK5MKE6G
 I7+3CDZsRZlhz/u6fraQ/iFmLTEogEtDr6x6vp1RFQ8tmtkqgzdGJHsP1oRSG4SW
 BUqwz7vd/TtzSJK+vxSt
 =YGm1
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-core-for-4.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/soc

Pull "Allwinner core changes for 4.11" from Maxime Ripard:

Some patches to support two new SoCs: the H2+ and the V3s.

* tag 'sunxi-core-for-4.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux:
  arm: sunxi: add support for V3s SoC
  ARM: sunxi: add support for H2+ SoC
2017-02-07 16:17:39 +01:00
Arnd Bergmann
5172d5a5a9 mvebu soc for 4.11 (part 2)
SoC part of the support for the for Marvell switches with integrated
 CPUs based on Armada XP: the SMP support is slightly different.
 -----BEGIN PGP SIGNATURE-----
 
 iIEEABECAEEWIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCWJCa0yMcZ3JlZ29yeS5j
 bGVtZW50QGZyZWUtZWxlY3Ryb25zLmNvbQAKCRALBhiOFHI71bmhAJoCMTBerj+q
 dN6aACDT7cfSl8BUwQCfSBNQ2+0r6+naWABhDo7DhPoeOoE=
 =XnFS
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-soc-4.11-2' of git://git.infradead.org/linux-mvebu into next/soc

Pull "mvebu soc for 4.11 (part 2)" from Gregory CLEMENT:

SoC part of the support for the for Marvell switches with integrated
CPUs based on Armada XP: the SMP support is slightly different.

* tag 'mvebu-soc-4.11-2' of git://git.infradead.org/linux-mvebu:
  arm: mvebu: support for SMP on 98DX3336 SoC
2017-02-07 16:15:43 +01:00
Arnd Bergmann
3c38e32aad Allwinner DT changes for 4.11, part 2
Support for the audio codec and Mali GPU for the A33
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYmHAxAAoJEBx+YmzsjxAgiG8P/ijFKXwrmqtrk5a3gUvYIZMK
 Qw7zFwHAYgijDRKMNOC9TuvRx/5x6k5V/9kT19zavrz9b1lX/PG5XHfVJH4eWD5U
 KjTbISJNR2t7uMTiW2Ydree3D/m6AkrulbOF7M9UP8W5dhwbziJ0uOyAMzxIryjl
 Q5i3eUg3mUJylGk2SFcX4ANvtTpCPqvUjExRP1hwQSNonVQgaEKg9LKXEdo8o9RT
 hlF6yStn8AyNtHX6rzChiv7AxvOoD5vSehEWuWg3O7GTpUX5lWDzNJewlkkJ6aEl
 HBzO1Fni6e/TAxXBEeMeQlf6VnFfSjWhkvMEa5OhFB5NeFE+/THTX+tgyidGK6bT
 SwW5+YkQp5ZDhnYU40r0WrJwq4rKoJXzzqkjhE2iPng1zqMbMudiQzBXoITNCTC1
 zOYCNMun1lg7GbWXC/YolGUe7ORYKhn+bWNQaBPhn1NR6Ck0uNTQZFyCxdDqN3rH
 XtC/JKxbkeXNXSAVFe/16yyyp5bk325n7uNxYzFH4ix9ePIUpvvBCzYgzh4EQY3V
 OMDPDFsmApV85S+a5U4ZcTe8QVk5PrAmEFGjfO/doMVcduH4TH3kbQz9GvoQtxJv
 R73qeTGWzZs1jLo+UovJ9+W8RYGUdlik4G3i0iT5LG4BiLKNmq+YcE8DEPg/C45t
 FAByvIheTctIWKeMhQpP
 =X2M/
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt-for-4.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt

Pull "Allwinner DT changes for 4.11, part 2" from Maxime Ripard:

Support for the audio codec and Mali GPU for the A33

* tag 'sunxi-dt-for-4.11-2' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux:
  ARM: dts: sun8i: sinlinx: Enable audio nodes
  ARM: dts: sun8i: parrot: Enable audio nodes
  ARM: dts: sun8i: Add audio codec, dai and card for A33
  ARM: sun8i: dt: Add mali node
  dt-bindings: gpu: Add Mali Utgard bindings
2017-02-07 16:09:41 +01:00
Arnd Bergmann
2bad7f862e Allwinner DT changes for 4.11
The usual chunk of DT changes, most notably:
   - Support for the H2+ and the V3s
   - CPUFreq support for the A33
   - SPDIF support for the A31 and H3
   - New boards: Beelink X2, Lichee Pi One, Lichee Pi Zero,
     Orange Pi Zero
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYkFCYAAoJEBx+YmzsjxAgljYP/0seq1LEtMtoTeXHP6ZPkrju
 7/pHjEwJFZRH98DZ0QMAcUM+fHB0C4h5UadEXCIyzYBO9yeHzm+Hoys4VvpaQasL
 6taHz3zJ5T1/si7HyyP16LEwaFeARmSO3aXh4t5195Y2u3BFD+b2i5BpMquCC5CM
 XXJmx3Q487bUWjdufUqiSz0gWK1BfKw/eJAawoJbIl9Z6v7wOvE0SQF8ZtIc2eOl
 WX9uyNKdYh4PsSC0TxexDeKHNhLh2hJgO1HxYg+DTdyGM144XO0OSuPFtfilROaL
 tViKBohffz8A4K5m5iCaDva+P9318iO2xVN91/DFV6VS2XhMRvUrfZRd9kEvuhvu
 FJF3KrIZDLRu7tkcHVt9GDjO3CElejMT+qLOGg7t+9nJ+6RjyHUSBs6HIU0Opsu0
 Fw7LyHihzDH/m7m87lxUUmC5rSRqMVfuiKwphHYqDzkYEGEnL4kv055rE6cBFGyM
 zr7aajpiFgARPXj1XdZQRnz8uC8kySUf2o1oLPdhP3szX41AWBTiBuT7yqMB6qnD
 5B8Xj4zTsjEYfwsaWaI8VhbK2UsLgsUlbUXugKfqtjoPTjaWN6zQ3C6030Bov9za
 2jo0+187iYp/B/M4DPiH3Kicfntnj4DWRmBt8wCX/PVXS2tD1S617JzugbX/+EZK
 PF328UgsT3c1UkccBK9/
 =ig5Q
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt-for-4.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux into next/dt

Pull "Allwinner DT changes for 4.11" from Maxime Ripard:

The usual chunk of DT changes, most notably:
  - Support for the H2+ and the V3s
  - CPUFreq support for the A33
  - SPDIF support for the A31 and H3
  - New boards: Beelink X2, Lichee Pi One, Lichee Pi Zero,
    Orange Pi Zero

* tag 'sunxi-dt-for-4.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mripard/linux: (42 commits)
  ARM: dts: sun8i-h3: Add SPDIF to the Beelink X2
  ARM: dts: sun8i-h3: Add the SPDIF block to the H3
  ARM: dts: sun8i-h3: Add SPDIF TX pin to the H3
  ARM: dts: sun8i-h3: Add dts for the Beelink X2 STB
  ARM: sun8i: sina33: Enable display
  ARM: sun8i: a23/a33: Add the oscillators accuracy
  ARM: sun8i: a23/a33: Enable the real LOSC and use it
  ARM: dts: sunxi: add support for Lichee Pi Zero board
  ARM: dts: sunxi: add dtsi file for V3s SoC
  ARM: dts: sun6i: sina31s: Enable USB OTG controller in peripheral mode
  ARM: dts: sun8i: reference-design: use AXP223 DTSI
  ARM: dts: sun8i: parrot: use AXP223 DTSI
  ARM: dts: sun8i: sina33: use AXP223 DTSI
  ARM: dts: sun8i: a33-olinuxino: use AXP223 DTSI
  ARM: dts: add DTSI for AXP223
  dt-bindings: power: axp20x-usb: add axp223 compatible
  ARM: dts: sun7i: Add wifi dt node on Banana Pro
  ARM: dts: sun6i: Add SPDIF to the Mele I7
  devicetree: bindings: Add vendor prefix for Shenzhen Xunlong Software
  ARM: dts: sun8i-h3: orange-pi-pc: Enable audio codec
  ...
2017-02-07 16:08:58 +01:00
David S. Miller
6a413e269b Merge branch 'net-Fix-on-stack-USB-buffers'
Ben Hutchings says:

====================
net: Fix on-stack USB buffers

Allocating USB buffers on the stack is not portable, and no longer
works on x86_64 (with VMAP_STACK enabled as per default).  This
series fixes all the instances I could find where USB networking
drivers do that.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:07:03 -05:00
Ben Hutchings
2d6a0e9de0 catc: Use heap buffer for memory size test
Allocating USB buffers on the stack is not portable, and no longer
works on x86_64 (with VMAP_STACK enabled as per default).

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:07:02 -05:00
Ben Hutchings
d41149145f catc: Combine failure cleanup code in catc_probe()
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:07:02 -05:00
Ben Hutchings
7926aff5c5 rtl8150: Use heap buffers for all register access
Allocating USB buffers on the stack is not portable, and no longer
works on x86_64 (with VMAP_STACK enabled as per default).

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:07:02 -05:00
Ben Hutchings
5593523f96 pegasus: Use heap buffers for all register access
Allocating USB buffers on the stack is not portable, and no longer
works on x86_64 (with VMAP_STACK enabled as per default).

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
References: https://bugs.debian.org/852556
Reported-by: Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
Tested-by: Lisandro Damián Nicanor Pérez Meyer <lisandro@debian.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:07:01 -05:00
David S. Miller
108d9c71dc Merge branch 'virtio_net-XDP-adjust_head'
John Fastabend says:

====================
XDP adjust head support for virtio

This series adds adjust head support for virtio. The following is my
test setup. I use qemu + virtio as follows,

./x86_64-softmmu/qemu-system-x86_64 \
  -hda /var/lib/libvirt/images/Fedora-test0.img \
  -m 4096  -enable-kvm -smp 2 -netdev tap,id=hn0,queues=4,vhost=on \
  -device virtio-net-pci,netdev=hn0,mq=on,guest_tso4=off,guest_tso6=off,guest_ecn=off,guest_ufo=off,vectors=9

In order to use XDP with virtio until LRO is supported TSO must be
turned off in the host. The important fields in the above command line
are the following,

  guest_tso4=off,guest_tso6=off,guest_ecn=off,guest_ufo=off

Also note it is possible to conusme more queues than can be supported
because when XDP is enabled for retransmit XDP attempts to use a queue
per cpu. My standard queue count is 'queues=4'.

After loading the VM I run the relevant XDP test programs in,

  ./sammples/bpf

For this series I tested xdp1, xdp2, and xdp_tx_iptunnel. I usually test
with iperf (-d option to get bidirectional traffic), ping, and pktgen.
I also have a modified xdp1 that returns XDP_PASS on any packet to ensure
the normal traffic path to the stack continues to work with XDP loaded.

It would be great to automate this soon. At the moment I do it by hand
which is starting to get tedious.

v2: original series dropped trace points after merge.
====================

Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:05:13 -05:00
John Fastabend
2de2f7f40e virtio_net: XDP support for adjust_head
Add support for XDP adjust head by allocating a 256B header region
that XDP programs can grow into. This is only enabled when a XDP
program is loaded.

In order to ensure that we do not have to unwind queue headroom push
queue setup below bpf_prog_add. It reads better to do a prog ref
unwind vs another queue setup call.

At the moment this code must do a full reset to ensure old buffers
without headroom on program add or with headroom on program removal
are not used incorrectly in the datapath. Ideally we would only
have to disable/enable the RX queues being updated but there is no
API to do this at the moment in virtio so use the big hammer. In
practice it is likely not that big of a problem as this will only
happen when XDP is enabled/disabled changing programs does not
require the reset. There is some risk that the driver may either
have an allocation failure or for some reason fail to correctly
negotiate with the underlying backend in this case the driver will
be left uninitialized. I have not seen this ever happen on my test
systems and for what its worth this same failure case can occur
from probe and other contexts in virtio framework.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:05:12 -05:00
John Fastabend
9fe7bfce8b virtio_net: refactor freeze/restore logic into virtnet reset logic
For XDP we will need to reset the queues to allow for buffer headroom
to be configured. In order to do this we need to essentially run the
freeze()/restore() code path. Unfortunately the locking requirements
between the freeze/restore and reset paths are different however so
we can not simply reuse the code.

This patch refactors the code path and adds a reset helper routine.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:05:12 -05:00
John Fastabend
722d82830a virtio_net: remove duplicate queue pair binding in XDP
Factor out qp assignment.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:05:11 -05:00
John Fastabend
0354e4d19c virtio_net: factor out xdp handler for readability
At this point the do_xdp_prog is mostly if/else branches handling
the different modes of virtio_net. So remove it and handle running
the program in the per mode handlers.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:05:11 -05:00
John Fastabend
473153291b virtio_net: wrap rtnl_lock in test for calling with lock already held
For XDP use case and to allow ethtool reset tests it is useful to be
able to use reset paths from contexts where rtnl lock is already
held.

This requries updating virtnet_set_queues and free_receive_bufs the
two places where rtnl_lock is taken in virtio_net. To do this we
use the following pattern,

	_foo(...) { do stuff }
	foo(...) { rtnl_lock(); _foo(...); rtnl_unlock()};

this allows us to use freeze()/restore() flow from both contexts.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-02-07 10:05:11 -05:00
Florian Fainelli
7781e61b5b ARM: ep93xx: Disable TS-72xx watchdog before uncompressing
The TS-72xx/73xx boards have a CPLD watchdog which is configured to
reset the board after 8 seconds, if the kernel is large enough that this
takes about this time to decompress the kernel, we will encounter a
spurious reboot.

Do not pull ts72xx.h, but instead locally define what we need to disable
the watchdog.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2017-02-07 16:02:34 +01:00
Linus Walleij
4b483ed0be ARM: ux500: cut some platform data
This platform data is revoked: the drivers are getting the DMA
configuration from the device tree, it has been done like that
since the DMA support was merged and this data has not been used
since. The remaining auxdata is also unused.

Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2017-02-07 16:01:04 +01:00
Arnd Bergmann
fd896f5acd SoCFPGA DTS updates for v4.11, part 2
- Add AXI configuration for DWMAC ethernet controllers on Arria10
 - Use watchdog1 instead of watchdog0 on Arria10
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJYlJ7EAAoJEBmUBAuBoyj0xfoQAJPJkAAJ3oq67oqtG8XtZUSD
 0OgG7Jn6+BFzY0N1oMYdluMWvO9ZRShlF5mLAcvA8kB/+qnUZp20Rq1+oz0ckzw+
 lg3qOBve01xiYkcX+vu/U8IKSVPqUQFE4ctHuO3lS6X3z+HwZtjfWs3uIA5Y2s6u
 riI5QB6QS3tdkfxQtRp9EzH2yLoxruCm50Bl5n4ouNPh1nZi6+O2aY48CcjrUIgL
 jpbPyeI3MnpsUVAKDbJ6Zml1mtCZprtj+gAVNihcGI6re77Ix+GK5C/LXB2+L3DO
 j/MKZz07Y/D6mZWQua+g8zNk53FEHxT7qBH6nBgOUYHctE0mB+6PQ+zLkxze8xXP
 aK0IouUlmIzjchlxtwzUUdbamW5/c/X9nv+I0HBmAbPJSCqq5RvlD0Dm42+BkihU
 VdlZRaYJ6Qyis+O23hRqW9T2qzw/fQy06e9cxItIALlysr+rTmEhD7dXKZpfQ+Md
 AU3Z3FydHURC0Zc20uw7nteSJDWOdeUKjZ7FZhrlJ4AuaVRvFaBBGsU593BE9TQo
 du5GWMp2Vh9hYje9rMTM6blH1d4N3RxSko/JS2KKUBYJyO9Qz5SOVdg84myEzTVx
 1fibfnjvvBe7D46RYlWfLTMTYmLt0QrEYis6gzBSxJgAYzQHiTma6d3vI0rRc0Jf
 uAMDKD5yV28078Tz/7Lf
 =46BH
 -----END PGP SIGNATURE-----

Merge tag 'socfpga_dts_for_v4.11_part_2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt

Pull "SoCFPGA DTS updates for v4.11, part 2" from Dinh Nguyen:

- Add AXI configuration for DWMAC ethernet controllers on Arria10
- Use watchdog1 instead of watchdog0 on Arria10

* tag 'socfpga_dts_for_v4.11_part_2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  ARM: dts: Add EMAC AXI settings for Arria10
  ARM: dts: watchdog0 cannot reliably trigger reset
2017-02-07 15:58:08 +01:00
Arnd Bergmann
5f2f35a1ff Samsung DeviceTree update for v4.11, third round:
1. Add descriptive user-friendly label names for power domains. This
    makes debugging easier.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCAAGBQJYk3VZAAoJEME3ZuaGi4PXqSoP/jW2BUA0EmHRbOYaaJAgdnEJ
 ZhkCmguJepJlqPK1vrPNgCSFDqHdfaTZl5q4lSHf0WCTjL68YCwqnQuzjppL9Qvq
 nlvtvkfbXXIBBZurb7W1J7CriKM456NckbNgQGK6bSL6z4unOpoAmyzbBP7+8xJM
 O4OM3XvIRUUslQsV5oJv+HlBMNZaZ7bqZ7tg9XEHgldSRhDHpPurmxTwOIssIJ5H
 OPbH9hmhubkW64CRALN/jXwYG+s3537ZK/SDy5OPeRw0/Fkscxu3b7pqa3JC/Kar
 ViiFS1FT22hsxRVwjNB+67W4rsCNjTlJNmcSKg9KPubsANFrMoOQ3ZzV2zbB8oml
 l227IAdwv7+VLYkjreqdirf2UjfYhRBRd5HTQiV1bIJ2XHe7Ar56M2DN9CbXSXK0
 HnsYPVCpgSUE2lCNTYf9BXKri9SYYRRaTsfvgpeRk/IzF61fr2LkAMtcoAPsJJob
 oWSBjTz/7/zPdZ68ESaJbe2A9i3Ywi0QzGT9emt8xT7N0shS3uwkMB51kQ4/Zqnf
 zP31Nf/o5bx1I6Y5aem0mgInpc6cFYkFItRVfSZ3sZbznBjFqIteeffamkF5JBFv
 PQYPh14HkT79ktYEmXS1kKHOgJl3QKN1L07tCI190GoLYBHI1w7NeUj9hf/TunwI
 SVx2B3hKV1PUkOpzIPp2
 =SE3a
 -----END PGP SIGNATURE-----

Merge tag 'samsung-dt-4.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/dt

Pull "Samsung DeviceTree update for v4.11, third round" from Krzysztof Kozlowski

1. Add descriptive user-friendly label names for power domains. This
   makes debugging easier.

* tag 'samsung-dt-4.11-3' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  ARM: dts: exynos: Add labels to all existing power domains
2017-02-07 15:50:58 +01:00
Konstantin Khlebnikov
51f8f3c4e2 ovl: drop CAP_SYS_RESOURCE from saved mounter's credentials
If overlay was mounted by root then quota set for upper layer does not work
because overlay now always use mounter's credentials for operations.
Also overlay might deplete reserved space and inodes in ext4.

This patch drops capability SYS_RESOURCE from saved credentials.
This affects creation new files, whiteouts, and copy-up operations.

Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Fixes: 1175b6b8d9 ("ovl: do operations on underlying file system in mounter's context")
Cc: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2017-02-07 15:47:14 +01:00
Amir Goldstein
e593b2bf51 ovl: properly implement sync_filesystem()
overlayfs syncs all inode pages on sync_filesystem(), but it also
needs to call s_op->sync_fs() of upper fs for metadata sync.

This fixes correctness of syncfs(2) as demonstrated by following
xfs specific test:

xfs_sync_stats()
{
	echo $1
	echo -n "xfs_log_force = "
	grep log /proc/fs/xfs/stat  | awk '{ print $5 }'
}

xfs_sync_stats "before touch"
touch x
xfs_sync_stats "after touch"
xfs_io -c syncfs .
xfs_sync_stats "after syncfs"
xfs_io -c fsync x
xfs_sync_stats "after fsync"
xfs_io -c fsync x
xfs_sync_stats "after fsync #2"

When this test is run in overlay mount over xfs, log force
count does not increase with syncfs command.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2017-02-07 15:47:14 +01:00
Amir Goldstein
01ad3eb8a0 ovl: concurrent copy up of regular files
Now that copy up of regular file is done using O_TMPFILE,
we don't need to hold rename_lock throughout copy up.

Use the copy up waitqueue to synchronize concurrent copy up
of the same file. Different regular files can be copied up
concurrently.

The upper dir inode_lock is taken instead of rename_lock,
because it is needed for lookup and later for linking the
temp file, but it is released while copying up data.

Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2017-02-07 15:47:14 +01:00
Amir Goldstein
39d3d60a54 ovl: introduce copy up waitqueue
The overlay sb 'copyup_wq' and overlay inode 'copying' condition
variable are about to replace the upper sb rename_lock, as finer
grained synchronization objects for concurrent copy up.

Suggested-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2017-02-07 15:47:14 +01:00
Amir Goldstein
d8514d8edb ovl: copy up regular file using O_TMPFILE
In preparation for concurrent copy up, implement copy up
of regular file as O_TMPFILE that is linked to upperdir
instead of a file in workdir that is moved to upperdir.

Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2017-02-07 15:47:14 +01:00
Amir Goldstein
42f269b925 ovl: rearrange code in ovl_copy_up_locked()
As preparation to implementing copy up with O_TMPFILE,
name the variable for dentry before final rename 'temp' and
assign it to 'newdentry' only after rename.

Also lookup upper dentry before looking up temp dentry and
move ovl_set_timestamps() into ovl_copy_up_locked(), because
that is going to be more convenient for upcoming change.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2017-02-07 15:47:14 +01:00
Amir Goldstein
e7f52429b4 ovl: check if upperdir fs supports O_TMPFILE
This is needed for choosing between concurrent copyup
using O_TMPFILE and legacy copyup using workdir+rename.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2017-02-07 15:47:14 +01:00