Commit graph

691,473 commits

Author SHA1 Message Date
Kees Cook
0f3912fd93 arm/ptrace: run seccomp after ptrace
Close the hole where ptrace can change a syscall out from under seccomp.

Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: linux-arm-kernel@lists.infradead.org
2016-06-14 10:54:42 -07:00
Kees Cook
93e35efb8d x86/ptrace: run seccomp after ptrace
This moves seccomp after ptrace on x86 to that seccomp can catch changes
made by ptrace. Emulation should skip the rest of processing too.

We can get rid of test_thread_flag because there's no longer any
opportunity for seccomp to mess with ptrace state before invoking
ptrace.

Suggested-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: x86@kernel.org
Cc: Andy Lutomirski <luto@kernel.org>
2016-06-14 10:54:41 -07:00
Kees Cook
ce6526e8af seccomp: recheck the syscall after RET_TRACE
When RET_TRACE triggers, a tracer may change a syscall into something that
should be filtered by seccomp. This re-runs seccomp after a trace event
to make sure things continue to pass.

Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: Andy Lutomirski <luto@kernel.org>
2016-06-14 10:54:41 -07:00
Kees Cook
8112c4f140 seccomp: remove 2-phase API
Since nothing is using the 2-phase API, and it adds more complexity than
benefit, remove it.

Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: Andy Lutomirski <luto@kernel.org>
2016-06-14 10:54:40 -07:00
Andy Lutomirski
c87a85177e x86/entry: Get rid of two-phase syscall entry work
I added two-phase syscall entry work back when the entry slow path
was very slow.  Nowadays, the entry slow path is fast and two-phase
entry work serves no purpose.  Remove it.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
2016-06-14 10:54:39 -07:00
Andy Lutomirski
2f275de5d1 seccomp: Add a seccomp_data parameter secure_computing()
Currently, if arch code wants to supply seccomp_data directly to
seccomp (which is generally much faster than having seccomp do it
using the syscall_get_xyz() API), it has to use the two-phase
seccomp hooks. Add it to the easy hooks, too.

Cc: linux-arch@vger.kernel.org
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
2016-06-14 10:54:39 -07:00
Kees Cook
58d0a862f5 seccomp: add tests for ptrace hole
One problem with seccomp was that ptrace could be used to change a
syscall after seccomp filtering had completed. This was a well documented
limitation, and it was recommended to block ptrace when defining a filter
to avoid this problem. This can be quite a limitation for containers or
other places where ptrace is desired even under seccomp filters.

This adds tests for both SECCOMP_RET_TRACE and PTRACE_SYSCALL manipulations.

Signed-off-by: Kees Cook <keescook@chromium.org>
Cc: Andy Lutomirski <luto@kernel.org>
2016-06-14 10:54:38 -07:00
Masahiro Yamada
ffd8a5ed57 arm64: dts: uniphier: add /memreserve/ for spin-table release address
As Documentation/arm64/booting.txt says, the cpu-release-addr
location should be reserved.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:40:31 -07:00
Masahiro Yamada
1388ea2a8d arm64: dts: uniphier: change cpu-release-address
At first, 256 byte of the head of DRAM space was reserved for some
reasons.  However, as the progress of development, it turned out
unnecessary, and it was never used in the end.  Move the CPU release
address to leave no space.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:40:29 -07:00
Masahiro Yamada
ed6cca5f9a arm64: dts: uniphier: add SoC-Glue node to UniPhier 64bit SoCs
This node consists of various system-level configuration registers.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:40:15 -07:00
Masahiro Yamada
2a4a2aadba ARM: dts: uniphier: renumber serial aliases for Gentil/Vodka boards
On these two boards, the serial0 is used for inter-chip connection,
so cannot be used for login console.  The serial2 is used instead
for them, but it is tedious to use because upper level deployment
projects must switch login console per board.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:38:58 -07:00
Masahiro Yamada
ebe161d3e4 ARM: dts: uniphier: add SoC-Glue node to UniPhier 32bit SoCs
This node consists of various system-level configuration registers.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:38:55 -07:00
Masahiro Yamada
fdaf72e52f ARM: dts: uniphier: add System Bus pinmux node
This pin-muxing is needed to get access to the UniPhier System Bus.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:36:27 -07:00
Olof Johansson
97e80da315 Amlogic SoC changes for v4.8
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABCAAGBQJXUcY0AAoJEFk3GJrT+8ZlGUsP+wdX5d96MDcm+zOBNHpdNorQ
 A/fk1cSXHDk91ya0sRf6ktybrltthJL1NuntX1iKpyvlhTh7QFrZaInxm1HvwQAI
 g/bRi44G6BN2goVn8gUU1ErPIejYMTjLMfGjBhkGwzwxbx0wi39Z0aQjaapJ2xlU
 oyGV3hqrSMeAyKCuyCjo1QrODWr7vyDWcnY5cfIYR6KAX3LUPA2A2j3EwTOlRi3h
 meOE/ZWiFAVO6eOZCQnOZOVVRoxcWJMwEEp4uWALmL4xBsg4pHrfA1RKOb7tCPzl
 5qQ68+8OOG3FbiNd+0SJ2LXLrAajknW6Jvvx5GrM1NzopR3ZCqQRTgMLXq3PQa1M
 BMkZ80+D3wVJdJPLPhU0eE2mPPy+0RcjDmGUhgk0B8vJeVVtitJ4BbSfKI3svSdl
 0gNxuIFZ00fUkDIiO4A1J1rpTUEja1gOTjY9zKlkH7UN4uykKTdUEmFwUwAPubjU
 TmgGzXPEXn+LmeyoawbkOQ4NM1Z1E1V/WjlwmBEWjKbxM6lZC2eRIFfq5Ss5WJ3F
 whI9GWXoDh8EB1FiwSf2RDb4GOiYgrblmYbNrZRa7qGHD5E+zOh8n1z+zdC1OCDA
 W0nKcKE8lL44QnW4XDIwCtPV6YB4ycU1Ns9yUd/sYoZzHtk6Rc0m0goLxX1FYNiU
 t2jCOnJZUH7HXxk2NAAs
 =usWW
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into next/arm64

Amlogic SoC changes for v4.8

* tag 'amlogic-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
  ARM64: Kconfig: Select the Amlogic Meson pin controller driver

Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:31:31 -07:00
Olof Johansson
d8d8126f22 Reset controller changes for v4.8, part 2
- add Amlogic Meson SoC Reset Controller driver
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABCAAGBQJXXrvZAAoJEFDCiBxwnmDrWD4P/RXrSSCbOdWFZ/+z36kFb1PO
 pCMxaKPjQqy4YWKzKskknMxCApF1Wk+yxgYGk1BwemYqTl4zWdrwkU4UhZi2UMJN
 dGtnKl6WMQXhkvvQFxXp0guev4J72qDeWhj+FTmjJ+mvVcpgQ1RyIyUj5Bk7l+gX
 rCu34qonFa9ZLXwYF9xwPOopDKmzjZQE3RZ1J9Qzgm2XOGpseyDIA3Ur9oxPk37q
 vLbD/NIqcPLKfxa1eGCLZ2ysLMx4NogiDAQmcw/yglnSzjFlw2cRcrgtYTCx3Slf
 CjOkexVmHF+hIjJAXX8EOtnO983/7WdpZHOHZzkTNUB7cO/SCQIHN9FL7WQhcsWT
 MjFaHYonfrchySheJTw20Swh6vGlJmfq/MqYCkS6zF71cqhHMK2AEtpNgEOU9g9S
 wGWrkt1Rt0Q49NqfzTFTgtnXHHcbeFhbUX0zlgrKL5Gn5MyC0l8oZXhnC92kT15F
 tlEpF/9uVq/zaN2IM4TKFvpHVKV1uHXj5bWjaPfSDVUmTdnTdMql1+ZC88Q17FU7
 cqTP+YRJ4hpyJLQavbl/KLtMyBnQodKwcZkf+fK8afIsteoxv7OSVNZMwfC9pvDs
 IcogwfZSgApyq53/qIQOi6N2WYqYdX/Oe6zfqGLCdmnieMHYyEaiwLKLmlaoid1p
 s/xXaU3CmkLF/Pbx3+hE
 =Ft3q
 -----END PGP SIGNATURE-----

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

Reset controller changes for v4.8, part 2

- add Amlogic Meson SoC Reset Controller driver

* tag 'reset-for-4.8-2' of git://git.pengutronix.de/git/pza/linux:
  dt-bindings: reset: Add bindings for the Meson SoC Reset Controller
  reset: Add support for the Amlogic Meson SoC Reset Controller

Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:30:46 -07:00
Ard Biesheuvel
16740e7f89 arm64: defconfig: disable plain NEON implementation of AES
The plain NEON implementation of AES is only suited for v8 cores that lack
the ARMv8 Crypto Extensions but have an implementation of the NEON tbl/tbx
instruction that is not pathetically slow. Unfortunately, this is currently
the empty set, so there is no point in including this implementation by
default. So disable it.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:28:27 -07:00
Olof Johansson
f52ce16be6 Defconfig changes for 4.8:
- Add at91sam9 platforms in multi_v5
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCgAGBQJXW0q4AAoJENiigzvaE+LCz4EP/R4VWXaAKxRrlcoYqjlohGPo
 weOH5W7llVkItWQW8sPAO1qZLH6eYH/mZWWLiAsRj932kh9NMOBvgDkfOSMuTxey
 sTIZh47OCBF+wXFEaO5O3ReEdBWnuc5YtGTGNlJ9/fq59MW6ZHg57uMCSLqCOrJc
 v49PjcXhBKhBv6OhY56t5IVKhbqXVW0HsscBKY5u5YgrT5hO/5r7rlutC06o4U8p
 Hw0LPcmwcIpzyd6lVPIRG93dBaNtEMGh0RDLJPSHoC7HxnbVfZudWuK4Qx9nAeXt
 Y5WhkWqk7Ao2NtgOaljfoA2wuRugdSR4guYTMg7FxO2uOsIOljcsJFY9kPneAbid
 QsY4u841y3AVw/DJzu9e6912Ct+KChidNJB+r3gQhH1W9QZ1JHNBR4BytNUBPB8+
 vd338/Z/6UKqWiQq9zFVeUWt7YC6uS5VVOwI5SrPFcPgTxQPkgG/4WDGz9EzMdND
 SlXdlVIlAF1rI9rGu8Z8nD/lpEB39pgu2hfe9nIhqybd6vA1orxVfyrg+KtTrn/9
 7wZTVghujnY2L9fChW9wXUubxE+6FfBe0SidnB3EqwuGvMmJ5aKLoPJ1Fpv7chW+
 Q4StNHKkGh88G7GfBLjyKJnu6rGCijj2fuBYZ3xKOepjqxGV4+IzHUVlbJSBP0KP
 TFYvl7ZY6Qom0RozZ9m8
 =nTAu
 -----END PGP SIGNATURE-----

Merge tag 'at91-ab-4.8-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/defconfig

Defconfig changes for 4.8:
 - Add at91sam9 platforms in multi_v5

* tag 'at91-ab-4.8-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  ARM: multi_v5_defconfig: enable Atmel platforms

Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:27:05 -07:00
Olof Johansson
27c1e36223 DT Changes for 4.8:
- New board: Olimex SAM9-L9260
  - Fix crystal definitions for Denx ma5d4
  - Remove leftover clock definitions
  - Add stdout-path for usb_a9260/a9g20
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCgAGBQJXXUN5AAoJENiigzvaE+LCDpkP/0w7RA9ka7ABAYO6espZ4bO8
 lUDMJeOXGA04dLD0H4QwVxVd4OeculwhvdQ9EwInF0wscmQXyqIFjlefebOGjQUp
 FCwys1KXyAVLNz02Qc1uy4Lnq25N2XzGn/nyAJZYm9GesjI0mJ6zHmk2NsIgRKZP
 yEBTNnGWtnOHDO6GVi/QHGyfA/LHbJaTddwsUBoFrlRET6XW/ppLOKmxMKVEoZR8
 XyfRcbEJ6GuUMQ4rv3NzUoUoFCl0AFaROcrtJfCf7MBhjlXFho9eXQh33rx8J7po
 4FyKKqi7yi3a27F0Dwt3Y/M13FBV178MI+J0IFFiqx6aghFtSEYg+Edz7/rtR+dQ
 dhAlU1DLB8rjlItK9EvFUfUpED3JGfc2kVHHsrzjx+oj/nyJ8pO7B5ew7Il/8tKM
 7e1ujKbJo2hvmxNJ+ULhKc+Ma8z0ofUbvrxGo/vYQn5/5+ZCPzpYmJBfNCh5JqJC
 sNJL4L83CfwHYCiQgT7bI+X1GyC7AGbpggLx7pGi4ji+wsCqZ275zVozrG4dm2u5
 jWlIYm4QGZ0B+qo4qwOqinldfNK06KUqtQMazYY3mmRw2USvc2uNq5ka9OLnUNI8
 PKCjoCaYql0iYJSAKpHdEF3+4ST6WcduQrxW4btGximGRQFx60nlnGLqe9jGNpCz
 IrxscsTkqsUd89m4/jYk
 =9TFL
 -----END PGP SIGNATURE-----

Merge tag 'at91-ab-4.8-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/dt

DT Changes for 4.8:
 - New board: Olimex SAM9-L9260
 - Fix crystal definitions for Denx ma5d4
 - Remove leftover clock definitions
 - Add stdout-path for usb_a9260/a9g20

* tag 'at91-ab-4.8-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  ARM: dts: at91: calao: remove leftovers clock definition
  ARM: dts: at91: pm9g45: remove leftovers clock definition
  ARM: dts: at91: mpa1600: remove leftovers clock definition
  ARM: dts: at91: ge863-pro3: remove leftovers clock definition
  ARM: dts: at91: at91-foxg20: remove leftovers clock definition
  ARM: dts: at91: at91-cosino: remove leftovers clock definition
  ARM: dts: at91: at91-ariag25: remove leftovers clock definition
  ARM: dts: at91: animeo_ip: remove leftovers clock definition
  ARM: dts: at91: ma5d4: properly define crystals frequencies
  ARM: dts: at91: usb_a9g20: use stdout-path
  ARM: dts: at91: Add DT support for Olimex SAM9-L9260 board.
  ARM: dts: at91: at91sam9260: Remove leading zeros in OHCI node.

Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:26:25 -07:00
Rhyland Klein
5bc28b93a3 power_supply: power_supply_read_temp only if use_cnt > 0
Change power_supply_read_temp() to use power_supply_get_property()
so that it will check the use_cnt and ensure it is > 0. The use_cnt
will be incremented at the end of __power_supply_register, so this
will block to case where get_property can be called before the supply
is fully registered. This fixes the issue show in the stack below:

[    1.452598] power_supply_read_temp+0x78/0x80
[    1.458680] thermal_zone_get_temp+0x5c/0x11c
[    1.464765] thermal_zone_device_update+0x34/0xb4
[    1.471195] thermal_zone_device_register+0x87c/0x8cc
[    1.477974] __power_supply_register+0x364/0x424
[    1.484317] power_supply_register_no_ws+0x10/0x18
[    1.490833] bq27xxx_battery_setup+0x10c/0x164
[    1.497003] bq27xxx_battery_i2c_probe+0xd0/0x1b0
[    1.503435] i2c_device_probe+0x174/0x240
[    1.509172] driver_probe_device+0x1fc/0x29c
[    1.515167] __driver_attach+0xa4/0xa8
[    1.520643] bus_for_each_dev+0x58/0x98
[    1.526204] driver_attach+0x20/0x28
[    1.531505] bus_add_driver+0x1c8/0x22c
[    1.537067] driver_register+0x68/0x108
[    1.542630] i2c_register_driver+0x38/0x7c
[    1.548457] bq27xxx_battery_i2c_driver_init+0x18/0x20
[    1.555321] do_one_initcall+0x38/0x12c
[    1.560886] kernel_init_freeable+0x148/0x1ec
[    1.566972] kernel_init+0x10/0xfc
[    1.572101] ret_from_fork+0x10/0x40

Also make the same change to ps_get_max_charge_cntl_limit() and
ps_get_cur_chrage_cntl_limit() to be safe. Lastly, change the return
value of power_supply_get_property() to -EAGAIN from -ENODEV if
use_cnt <= 0.

Fixes: 297d716f62 ("power_supply: Change ownership from driver to core")
Cc: stable@vger.kernel.org
Signed-off-by: Rhyland Klein <rklein@nvidia.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
2016-06-14 19:25:48 +02:00
Olof Johansson
9c643eda00 Drivers for 4.8:
- Add a driver for the EBI
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCgAGBQJXW0oNAAoJENiigzvaE+LCzBIP/1Cx7rGEELldxsy9pG++aNF1
 DpDjBrrG7qkuMRv7VJe2oIHcQUzZe1OOkRrDVKcngfe2QojfCgN1XLWZiCvvGpAM
 fCJGwj6aVQNOyCx+uxAxaqAYA+PmCPYJYpiDTVr7aJj1tXYp3RCdnrucIkrPstpb
 qPik+owFwJdHYWwprqKP2V5c+ShiCminKjJFei37hpbgEJYYNwCfEKqQOi5MDudA
 dfnfbg4KRFaEWfplID35tloTCIk2LWSSbQuW7+jp2Pd6ISq8qj++YMqUwRTkR4kl
 /2fwvkWYUsvc1eNok6W0j5sylO/I9Rp5EhAGE8wpWuSZOjQZ/2IAI83bZLdbyX4D
 GdrmelwKCHcag9ENTI961wS+nY6IyZhOu8kRYHoYgTb5f+wqB7cA8L8we91rJ0gg
 DLv/KPE1MqnpC3ck0au2smqTwNHt93B9JEXU9A1krov1kGsIl6q4IOZX/WM27gLv
 2FYKG6VDSfCD+XnWcgfBvXOOgdhU71z1MqqluiWgH2jphxPkT5tKr4OVUmeUPfKO
 XUBXRIobeicOiqjbNav8SXoJ5ne5wQx5O8ktr+XJOfLPG8smdePCmT8zJrGPplV6
 x7yMMIe6u/ds15mDlpfi91AQoGtoEJyiqKhof3LXFPs60GRJwiANFWj0FuqWkHMe
 DuM/NlOWVsIUSDGaPfwN
 =bK4Z
 -----END PGP SIGNATURE-----

Merge tag 'at91-ab-4.8-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/drivers

Drivers for 4.8:
 - Add a driver for the EBI

* tag 'at91-ab-4.8-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  memory: atmel-ebi: add DT bindings documentation
  memory: add Atmel EBI (External Bus Interface) driver

Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:18:54 -07:00
Olof Johansson
cc97d39431 SoC changes for 4.8:
- Solve an issue with DEBUG_LL and multi_v7
  - Also make DEBUG_LL more user friendly
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABCgAGBQJXW0h2AAoJENiigzvaE+LCx/EQAI9wbtmT3wBD/VbRnsZouc8C
 PCkf8LVyg/bBVE27L7DOIFbOzYXuUOnWApXXzQO/vvyGbkSbouUYKIoCd7DUPe20
 ENzNtca57ZxvduV/FYjHVxC/FS04HkzuGopM6/z7NUXIy3iS77Bql//C0900g7+B
 iLZw8XMyN81gIfJK8Z8noHAAfZxUPJpwzdcfasT/sSwPC5yvUwMW1kwKT2Yh8Y/t
 tm3xYtKZRMdIDHHRWMkyFexxNtZZSoW3QYPFul4LW+aWefAh8aNlV8gO22edtqx+
 6IyrDvJdCJGQ9iSROuq2JpcmlPSOTWDohRU5odFPB0Y2Ym6mi8JK3XaMe3YnQz4l
 CVXVuYqDDZK5SLIA0pMg++9aHonnvilbR5eEGLLYvrhZw4aSeNAzTWM2nbF+XEWk
 irnjHXzpSbhtaG03tlI2dH1J7J2MNDVEYrV0Qywk3BXl10xlADzdaM5Z0yG7nilq
 45uOYlX0lq7K6vjQ9vo5POW/r+erw0/tc1RT3Vj4Kvqx5rW5mAnNMZ7veZ+UGocw
 rA5qEu9q7bGTzQ+envFJWqqP0YaMpSSekPrZ0EwcveBEWjIWUlh/va90+Ffd4XPZ
 DLVfGxo6WKMyvkW3o5UCKnAwOCNDmSFE7jyJzU/WslEgTge3I8rGOMTzi8tgBWEH
 6+MaRJqdy9fQoxMMz+Dx
 =uP+5
 -----END PGP SIGNATURE-----

Merge tag 'at91-ab-4.8-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/soc

SoC changes for 4.8:
 - Solve an issue with DEBUG_LL and multi_v7
 - Also make DEBUG_LL more user friendly

* tag 'at91-ab-4.8-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  ARM: at91: debug: add default DEBUG_LL addresses
  ARM: at91: debug: use DEBUG_UART_VIRT

Signed-off-by: Olof Johansson <olof@lixom.net>
2016-06-14 10:09:24 -07:00
Vinod Koul
a35aeaee94 ASoC: Intel: Skylake: Check for module list being NULL
While clearing loaded module count, we should check first to see
if module list is NULL or not. Some distributions can ship with
no modules and thus list can be empty.

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2016-06-14 18:00:45 +01:00
Vinod Koul
b914bb55f2 ASoC: Intel: Skylake: Initialize module list for Broxton
The module list was not initialized for Broxton DSP code, so
initialize it.

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
2016-06-14 18:00:34 +01:00
Geert Uytterhoeven
eee930163c nfsd: Fix NFSD_MDS_PR_KEY on 32-bit by adding ULL postfix
On 32-bit:

    fs/nfsd/blocklayout.c: In function ‘nfsd4_block_get_device_info_scsi’:
    fs/nfsd/blocklayout.c:337: warning: integer constant is too large for ‘long’ type
    fs/nfsd/blocklayout.c:344: warning: integer constant is too large for ‘long’ type
    fs/nfsd/blocklayout.c: In function ‘nfsd4_scsi_fence_client’:
    fs/nfsd/blocklayout.c:385: warning: integer constant is too large for ‘long’ type

Add the missing "ULL" postfix to 64-bit constant NFSD_MDS_PR_KEY to fix
this.

Fixes: f99d4fbdae ("nfsd: add SCSI layout support")
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2016-06-14 11:50:04 -04:00
Bart Van Assche
e1f3b9412e block/blk-cgroup.c: Declare local symbols static
Detected by sparse.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@fb.com>
2016-06-14 09:09:33 -06:00
Bart Van Assche
1179a5a085 block/bio-integrity.c: Add #include "blk.h"
This patch avoids that building with W=1 C=2 triggers the following
warning:

block/bio-integrity.c:35:6: warning: symbol 'blk_flush_integrity' was not declared. Should it be static?

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2016-06-14 09:09:17 -06:00
Bart Van Assche
aa8d15bfe4 block/partition-generic.c: Remove a set-but-not-used variable
A value is assigned to the variable 'info' but that value is never
used. Hence remove the variable 'info'.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2016-06-14 09:09:15 -06:00
Hendrik Brueckner
19c93787f5 s390/crc32-vx: use vector instructions to optimize CRC-32 computation
Use vector instructions to optimize the computation of CRC-32 checksums.
An optimized version is provided for CRC-32 (IEEE 802.3 Ethernet) in
normal and bitreflected domain, as well as, for bitreflected CRC-32C
(Castagnoli).

Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2016-06-14 16:54:16 +02:00
Hendrik Brueckner
0486480802 s390/vx: add support functions for in-kernel FPU use
Introduce the kernel_fpu_begin() and kernel_fpu_end() function
to enclose any in-kernel use of FPU instructions and registers.
In enclosed sections, you can perform floating-point or vector
(SIMD) computations.  The functions take care of saving and
restoring FPU register contents and controls.

For usage details, see the guidelines in arch/s390/include/asm/fpu/api.h

Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2016-06-14 16:54:11 +02:00
Heiko Carstens
de3fa841e4 s390/mm: fix compile for PAGE_DEFAULT_KEY != 0
The usual problem for code that is ifdef'ed out is that it doesn't
compile after a while. That's also the case for the storage key
initialisation code, if it would be used (set PAGE_DEFAULT_KEY to
something not zero):

./arch/s390/include/asm/page.h: In function 'storage_key_init_range':
./arch/s390/include/asm/page.h:36:2: error: implicit declaration of function '__storage_key_init_range'

Since the code itself has been useful for debugging purposes several
times, remove the ifdefs and make sure the code gets compiler
coverage. The cost for this is eight bytes.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2016-06-14 16:54:05 +02:00
Daniel Vetter
0d841ac0ec drm/virtio: Don't reinvent a flipping wheel
Now that the core helpers support nonblocking atomic commits there's
no need to invent that wheel separately (instead of fixing the bug in
the atomic implementation of virtio, as it should have been done!).

v2: Rebased on top of

commit e7cf0963f8
Author: Gerd Hoffmann <kraxel@redhat.com>
Date:   Tue May 31 08:50:47 2016 +0200

virtio-gpu: add atomic_commit function

Cc: Gerd Hoffmann <kraxel@redhat.com>
Tested-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1465510073-20951-1-git-send-email-daniel.vetter@ffwll.ch
2016-06-14 16:32:47 +02:00
Amitkumar Karwar
c62d50a406 mwifiex: inform disconnection initiator correctly.
This patch ensures that 'locally_generated' parameter is correctly
passed to cfg80211_disconnected() API.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:30:36 +03:00
Mathias Krause
5c87a55adb mwifiex: remove misleading GFP_DMA flag in buffer allocations
The GFP_DMA flag is obviously misunderstood in the mwifiex driver. It's
meant for legacy ISA DMA memory mappings only -- the lower 16MB on x86.
That doesn't apply to PCIe or SDIO devices, I guess.

Remove the GFP_DMA flag to reduce the need to place the socket buffer
allocation into the low mem DMA area, which might already be in use by
other drivers.

This misuse was flagged by the PaX USERCOPY feature by chance, as it
detected the user copy operation from a DMA buffer in the recvfrom()
syscall path.

Signed-off-by: Mathias Krause <minipli@googlemail.com>
Tested-by: Dennis Wassenberg <dennis.wassenberg@secunet.com>
Cc: Amitkumar Karwar <akarwar@marvell.com>
Cc: Nishant Sarmukadam <nishants@marvell.com>
Cc: Xinming Hu <huxm@marvell.com>
Cc: Kalle Valo <kvalo@codeaurora.org>
Cc: Brad Spengler <spender@grsecurity.net>
Cc: PaX Team <pageexec@freemail.hu>
Acked-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:28:51 +03:00
Rafał Miłecki
ee6e7aa383 brcmfmac: support get_channel cfg80211 callback
This is important for brcmfmac as some of released firmwares (e.g.
brcmfmac4366b-pcie.bin) may pick different channel than requested. This
has been tested with BCM4366B1 in D-Link DIR-885L.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:27:43 +03:00
Rafał Miłecki
4712d88a57 brcmutil: add field storing control channel to the struct brcmu_chan
Our d11 code supports encoding/decoding channel info into/from chanspec
format used by firmware. Current implementation is quite misleading
because of the way "chnum" field is used.
When encoding channel info, "chnum" has to be filled by a caller with
*center* channel number. However when decoding chanspec the same field
is filled with a *control* channel number.

1) This can be confusing. It's expected for information to be the same
   after encoding and decoding.
2) It doesn't allow accessing all info when decoding. Some functions may
   need to know both channel numbers, e.g. cfg80211 callback getting
   current channel.
Solve this by adding a separated field for control channel.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:27:42 +03:00
Muhammad Falak R Wani
d464fd8b48 brcmfmac: use kmemdup
Use kmemdup when some other buffer is immediately copied into allocated
region. It replaces call to allocation followed by memcpy, by a single
call to kmemdup.

Signed-off-by: Muhammad Falak R Wani <falakreyaz@gmail.com>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:26:48 +03:00
Arnd Bergmann
2cce76c3fa iwlegacy: avoid warning about missing braces
gcc-6 warns about code in il3945_hw_txq_ctx_free() being
somewhat ambiguous:

drivers/net/wireless/intel/iwlegacy/3945.c:1022:5: warning: suggest explicit braces to avoid ambiguous 'else' [-Wparentheses]

This adds a set of curly braces to avoid the warning.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:26:22 +03:00
Wei-Ning Huang
65c71efe1c mwifiex: fix racing condition when downloading firmware
The action 'check for winner' and 'download firmware' should be an
atomic action. This is true for btmrvl driver but not mwmfiex, which
cause firmware download to fail when the following senerio happens:

1) mwifiex check winner status: true
2) btmrvl check winner status: true, and start downloading firmware
3) mwfieix tries to download firmware, but failed because btmrvl is
already downloading.

This won't happen if 1) and 3) is an atomic action. This patch adds
sdio_claim/release_host call around those two actions to make sure it's
atomic.

Signed-off-by: Wei-Ning Huang <wnhuang@chromium.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:24:16 +03:00
Heinrich Schuchardt
6b128a01c6 brcm80211: simplify assignment
Simplify assignment in wlc_phy_rxcal_gainctrl_nphy_rev5.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:23:24 +03:00
Heinrich Schuchardt
a81605b149 rtlwifi: rtl8192ee: simplify coding
Simplify _rtl92ee_phy_path_adda_on.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:22:34 +03:00
Heinrich Schuchardt
141bcf0990 mwiflex: avoid possible null pointer dereference
Do not dereference card before checking against NULL value.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:21:28 +03:00
Heinrich Schuchardt
6b3c33e985 rtlwifi: rtl8723be: avoid undefined behavior
Do not return undefined value for transmission power
if the rate is invalid.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:20:50 +03:00
Heinrich Schuchardt
3fdbda446f mwifiex: illegal assignment
Variable adapter is incorrectly initialized.

Fixes: bf00dc22bc ("mwifiex: AMSDU Rx frame handling in AP mode")
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:19:11 +03:00
Heinrich Schuchardt
9b648d788d rsi: eliminate superfluous NULL check
msg is dereferenced before checking against NULL, e.g.
when assigning pad_bytes.
Remove the superfluous check in function rsi_mgmt_pkt_to_core.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2016-06-14 17:17:58 +03:00
Kalle Valo
bba42c7877 * fix the scan timeout for long scans
* fix an RCU splat caused when updating the TKIP key
 * fix a potential NULL-derefence introduced recently
 * fix a IGTK key bug that has existed since the MVM driver was introduced
 * fix some fw capabilities checks that got accidentally inverted
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJXWrB4AAoJEKFHnKIaPMX6lz4QAJeTa2oxSu+t11jBrDOatAAD
 pHAZMKXeHsN016dN7alijoIL3ssI4sYyTaXZW7quNTS2SgFemsYQvRDUKTeM0TZO
 xJpv4j5l6hdI/KG1mTczZJ1MvM6Q3a4E28+7M+mXw7/YzNn9tjdcWb+FPKshmeet
 yHH294r1iavCeY2E9Ir5G52p3MzeupbKXUY50hxbpcYRtl7Zf8Gbf9I1c1TmvFOI
 02Cx+uuexWmg2plWalhDu51nChC2npQq1H4zvtGpQ2mjWPrIjN+BKHy73jTQDn0K
 p+1lmWrMvduSuLjKeaGDR+kGtqyNLzynspgVkq72ogZyGFB6ljhTJYnlayHhlI94
 b5Xnp05l08roNew9PfQkpsFDaVfX256HdH9qtkQBK12XLd9Zh5MFd9WpfnhWNhDL
 VwReKVV04E8B67pNkPfyjTb4o48+UyUMY3eQ2vHyqyprKG7WEVU0nxSDuFxAIgoR
 lJRe3uHU8V3v8lWNflXiW1oDZ0RmT7NHI2OAyVPFstNJJV5VnBOLmfiyfaEJRpTf
 hAT5Swtu8b58zpStfgIu0L1rBDXVkNnjnqix+I9AiT31crecXB0ef2mPGtTe0cSz
 7mJRagBuniMJ/NOuA5TqkcY8jB5yntlhS9wHnlNHEfglc2mTtqAnmgrXkqSspTwa
 hu1bITMSZStZVntH8kV2
 =nj+n
 -----END PGP SIGNATURE-----

Merge tag 'iwlwifi-for-kalle-2016-06-10' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes

* fix the scan timeout for long scans
* fix an RCU splat caused when updating the TKIP key
* fix a potential NULL-derefence introduced recently
* fix a IGTK key bug that has existed since the MVM driver was introduced
* fix some fw capabilities checks that got accidentally inverted
2016-06-14 17:07:38 +03:00
Dave Gordon
4d75787b87 drm/i915/guc: (re)initialise doorbell h/w when enabling GuC submission
During a hibernate/resume cycle, the whole system is reset, including
the GuC and the doorbell hardware. Then the system is booted up, drivers
are loaded, etc -- the GuC firmware may be loaded and set running at
this point. But then, the booted kernel is replaced by the hibernated
image, and this resumed kernel will also try to reload the GuC firmware
(which will fail). To recover, we reset the GuC and try again (which
should work). But this GuC reset doesn't also reset the doorbell
hardware, so it can be left in a state inconsistent with that assumed
by the driver and/or the newly-loaded GuC firmware.

It would be better if the GuC reset also cleared all doorbell state,
but that's not how the hardware currently works; also, the driver cannot
directly reprogram the doorbell hardware (only the GuC can do that).

So this patch cycles through all doorbells, assigning and releasing each
in turn, so that all the doorbell hardware is left in a consistent
state, no matter how it was programmed by the previously-running kernel
and/or GuC firmware.

v2: don't use kmap_atomic() now that client page 0 is kept mapped.

Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1465837054-16245-2-git-send-email-david.s.gordon@intel.com
2016-06-14 15:04:08 +01:00
Dave Gordon
f10d69a76b drm/i915/guc: replace assign_doorbell() with select_doorbell_register()
This version doesn't update the doorbell bitmap, as that will
be done when the selected doorbell is associated with a client.

The call is now slightly earlier, just on the general principle
that potentially-failing operations should be done as early as
possible, to eliminate late failures and simplify recovery.

Suggested-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2016-06-14 15:04:07 +01:00
Dave Gordon
a667429b00 drm/i915/guc: refactor doorbell management code
This patch refactors the driver's handling and tracking of doorbells, in
preparation for a later one which will resolve a suspend-resume issue.

There are three resources to be managed:
1. Cachelines: a single line within the client-object's page 0
   is snooped by doorbell hardware for writes from the host.
2. Doorbell registers: each defines one cacheline to be snooped.
3. Bitmap: tracks which doorbell registers are in use.

The doorbell setup/teardown protocol starts with:
1. Pick a cacheline: select_doorbell_cacheline()
2. Find an available doorbell register: assign_doorbell()
(These values are passed to the GuC via the shared context
descriptor; this part of the sequence remains unchanged).

3. Update the bitmap to reflect registers-in-use
4. Prepare the cacheline for use by setting its status to ENABLED
5. Ask the GuC to program the doorbell to snoop the cacheline

and of course teardown is very similar:
6. Set the cacheline to DISABLED
7. Ask the GuC to reprogram the doorbell to stop snooping
8. Record that the doorbell is not in use.

Operations 6-8 (guc_disable_doorbell(), host2guc_release_doorbell(), and
release_doorbell()) were called in sequence from guc_client_free(), but
are now moved into the teardown phase of the common function.

Steps 4-5 (guc_init_doorbell() and host2guc_allocate_doorbell()) were
similarly done as sequential steps in guc_client_alloc(), but since it
turns out that we don't need to be able to do them separately they're
now collected into the setup phase of the common function.

The only new code (and new capability) is the block tagged
    /* Update the GuC's idea of the doorbell ID */
i.e. we can now *change* the doorbell register used by an existing
client, whereas previously it was set once for the entire lifetime
of the client. We will use this new feature in the next patch.

v2: Trivial independent fixes pushed ahead as separate patches.
    MUCH longer commit message :) [Tvrtko Ursulin]

Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2016-06-14 15:04:07 +01:00
Dave Gordon
10d2c3e281 drm/i915/guc: move guc_ring_doorbell() nearer to callsite
Just code movement, no actual change to the function. This is in
preparation for the next patch, which will reorganise all the other
doorbell code, but doesn't change this function. So let's shuffle it
down near its caller rather than leaving it mixed in with the setup
code. Unlike the doorbell management code, this function is somewhat
time-critical, so putting it near its caller may even yield a tiny
performance improvement.

Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2016-06-14 15:04:07 +01:00
Dave Gordon
dd16107f91 drm/i915/guc: remove writes to GEN8_DRBREG registers
These registers are not actually writable by the CPU; only the GuC can
actually program them. So let's not do writes that have no effect.

Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2016-06-14 15:04:07 +01:00