Commit graph

106767 commits

Author SHA1 Message Date
Arnd Bergmann
73a0e3350c Renesas ARM Based SoC Boards Updates for v3.19
* Add restart callback to kzm9g
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUYrwJAAoJENfPZGlqN0++T14P/AgLo05kfWeUUWC1/p2atyVG
 UfNfVAlJctMQtZN23XNVSRE+mfUGvGVAeYQJo+kbGGHFCiIE5s5L9mNxn3cHmRd6
 w260S3NEQaTpwBj5Tg0dCQVgDDUm8HMf3sh/Iex++l/BlSMe1Y4aB+B84HSA5l7t
 MCOIq/ShY05B16KLaLwUihZnJUN3eZ9/0HkGUVN4dKQvU2+tlYTGSpE1XlCm/kWC
 Rq+bLLew/1zPfebtWdqnSX50Vu3/UkYs4629ahqycyOSXvqpqMbN7mrHN6+uSruR
 49fUt2fsauESX2deFYO18f/T0eNqf7tp9opTIQdNCA2u87pTeQSx4JQzWItJGUu/
 f32CS4aANSNAPRjeRukbBJuuFCWAM1vN9rHbpAKV/d0n70YcNesC5nzGL7IzsH8Y
 pVg6guHLCInMB72P+AC/8HHeru09qoNOj5p1R15i+vqc71XJrrVm/nuP+IIh9WY/
 a71rC3rY409b15ZjURBRs+T8C8Kyg3i7zPpj/ColSniHr0AO6GWHoWTt9T7RITUG
 FPSPTNhFs0SEPG7qwp6eWN4Nqsfb7M4BEZe6nL8VFj5cgh2XugJ7xaE6ij1Sfj1P
 ihmqUFft1JEbEV/f43yl6rb/i8aIt5qel9mGtv+doPzxgL62NBVra/jtVY+DYBkY
 757L9/7tIV4wwy/JQpj7
 =k0Vx
 -----END PGP SIGNATURE-----

Merge tag 'renesas-boards-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc

Pull "Renesas ARM Based SoC Boards Updates for v3.19" from Simon Horman:

* Add restart callback to kzm9g

* tag 'renesas-boards-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: kzm9g-reference: Add restart callback

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 23:01:50 +01:00
Arnd Bergmann
a096c88b3f Third Round of Renesas ARM Based SoC DT Cleanups for v3.19
* Use keyboard as gpio-keys node name
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUapdxAAoJENfPZGlqN0++GJ0P/ROuRziwZCeXmsOv6zPNv1XR
 EVY93sam8qoFTgJaGiGbEi7stOIpEW0GPxUJzGDPgysMhSxBt2hqqAMtzRAK8uvl
 d+zMFIPGxPpzQW7lpVdeYnZLyr78jmhwXUsX//bOyIAmhDA80Oo43rWK5ksgGXml
 wkGVhKRipVkyCRztae72T0I5oTIbPSs25P4Qo6NdYlzLOWQ9ss3iQWxYBUBlMb/v
 MwJIy515IF+qhLJngaIG1J+d5x2s4gF68szv+oaUFPH6fRFpgEtl7XMrnvFrj/us
 HGWOi2L6cRBrySkY9D/ApbC4VC/QGbGdRkOJxWj+/p+JxXm3WVm+uPzH6WNARsFU
 EDrODAUfob9eilylDOxrv6fKmc/i4NOYfPfOor9dYDWeNgSXLgWorB1P26cVR9Yg
 bhE5zUcJguw2PJDPIDdfotFxU4cdU6E/NUaMVbGvKRjwB8zTYxMoj2psdYxorMap
 MRn504OAoiHiXqgGHaKvRYTlqE2PO0Mqc1EsPJSE1MVwdI2P4i4SPb3/qija8LWW
 bz1bTxxdCcGEe17EDisgbrqF0Bmeit3GB896UR8XZPy/Xsocjx0p4NkFatkkrMAb
 UNcSY6UfOssqH0+0CfMELP1uLOhwMZGNpw/ifKvOJGO7RDPi9d1VYSjY+vqWaf96
 nLFR+oR2uja0F0/DaotP
 =H8mr
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dt-cleanups3-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt

Pull "Third Round of Renesas ARM Based SoC DT Cleanups for v3.19" from Simon Horman:

* Use keyboard as gpio-keys node name

* tag 'renesas-dt-cleanups3-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: kzm9g-reference: Use keyboard as gpio-keys node name
  ARM: shmobile: koelsch: Use keyboard as gpio-keys node name
  ARM: shmobile: lager: Use keyboard as gpio-keys node name
  ARM: shmobile: armadillo800eva: Use keyboard as gpio-keys node name

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 22:49:32 +01:00
Tomi Valkeinen
f22d254551 ARM: OMAP2+: hwmod: add parent_hwmod support
Add parent_hwmod pointer to omap_hwmod. This can be set to point to a
"parent" hwmod that needs to be enabled for the "child" hwmod to work.

This is used at hwmod setup time: when doing the initial setup and
reset, first enable the parent hwmod, and after setup and reset is done,
restore the parent hwmod to postsetup_state.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Reviewed-by: Archit Taneja <archit.taneja@gmail.com>
[paul@pwsan.com: add kerneldoc documentation for parent_hwmod; note that it
 is a temporary workaround]
Signed-off-by: Paul Walmsley <paul@pwsan.com>
2014-11-19 14:48:12 -07:00
Arnd Bergmann
ba84c80bad Second Round of Renesas ARM Based SoC DT Cleanups for v3.19
* Drop console= bootargs parameter on alt
 * Correct scifb* naming on r8a73a4
 * Drop 0x unit-address prefixes
 * Remove unnecessary MMC options
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUYBRyAAoJENfPZGlqN0++D50P/2VWiS9cv/GZXxwVhI1cXHBv
 Zgi2m0aFqM1E6Fs+IreC2RSTR+ucUm/2BXg2Ig3MC3LsQ/iyh3axq27hAphBup51
 aF/Xi87+kDqnQCPB6pZop5lVkx+JL9Zi8ye6+qAjdysz48jf+389MEP4cif9Nk7g
 +o1VIah3orzk2WPummTFdBoYemqZ6M6tENpgQzlWGh6wDSrmKYUnfen74JDeMaqK
 xqqBraBb6P1pbPlZ3Pr0asOTq+fRBM4L1meZLDqNdG/DlhTWXL9uuyBo2jpT60eH
 9ssWhMt39xIbkfZNcDJ0P0BRxi/QbdJS5B/MGQcvmV28sv1eaa59D8gWF+om4F1r
 HQz9j3IsRpB5P7fxSVn+F2o6BPC+IwKmMBTMmVQZQ34ryqIFwo/tVpVDl5iE/+4G
 BYFFrMeuOWsUt05vl6vNmjSOgfMVk2A4ctOD70bNhjlLjym68JuBQFIa3Ju62M/J
 9QKVfg/m3VtIBRgGWq6+9cxvkQstk3AF9bGDH4LLfaNQCSJnScz687y8qjE+NIBm
 aqig/P+uHVQ25o04EYaKmuVCMqW+m7mtmXfiMszDGiQV4zAwZJQvXLLjRDeCaLai
 wWutff87HnKXl45X4hjBDzrCUS5cGm5GYF6gAxqEwAUBr4Ce2cfzN3mPsX+cNoWH
 JNaM3d6h3M99WxUultgX
 =l01+
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dt-cleanups2-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt

Pull "Second Round of Renesas ARM Based SoC DT Cleanups for v3.19" from Simon Horman:

* Drop console= bootargs parameter on alt
* Correct scifb* naming on r8a73a4
* Drop 0x unit-address prefixes
* Remove unnecessary MMC options

* tag 'renesas-dt-cleanups2-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: alt dts: Drop console= bootargs parameter
  ARM: shmobile: r8a73a4: fix scifb* naming
  ARM: shmobile: kzm9g-reference dts: Drop bogus 0x unit-address prefix
  ARM: shmobile: r8a7791 dtsi: Drop bogus 0x unit-address prefix
  ARM: shmobile: r8a7790 dtsi: Drop bogus 0x unit-address prefix
  ARM: shmobile: r8a7790 dtsi: Remove unnecessary MMC options
  ARM: shmobile: r8a7779 dtsi: Remove unnecessary MMC options
  ARM: shmobile: r8a7778 dtsi: Remove unnecessary MMC options

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 22:48:06 +01:00
Arnd Bergmann
8ef74e5d39 Renesas ARM Based SoC DT Updates for v3.19
* Add Add SoC-specific SATA compatible property to r8a7779
 * Enable DMA for MMCIF on r8a7791 and r8a7790
 * Enable USB-PHY, HS-USB and USB3.0 on r8a7791 and r8a7790
 * Enable TMU timer via DT on r8a7778
 * Enable CMT timer via DT on r8a73a4
 * Add MMP and {SR}GX clocks to  r8a7791 and r8a7790
 * Correct scifa2 clock index on r8a7740
 * Add missing INTCA for irqpin on r8a7740
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUWBh9AAoJENfPZGlqN0++zjwP/RxjS7wnDQvGqw2d3GSKp0I3
 Es/C4Ssm8kDYlgY1cQqeI/KK05vLEp5998YGy2kaVlTUSCj6UMO4UJ4t6yZgBeGA
 Nh4V70I475zlmxBjF4ZePD5+o/lyTbw+2GxHKFRsnxXqEr3E9QDNCgAc7kPevJl3
 U9T6B63VP3jOxJVzhfSNeFKYgmg4YgLW0aCsnZoW9mlS0phFZPO236JHdvFH8QQj
 FBjcdkkQjncBUTvLB54ASRk6wTWnEQ9WFGIGHDNYM11bypLndbKFxziofkKnex0B
 Pw6r9nY5jsKVkye68PsL5abKnyJQ87assacGEm6SuO/Sp8fR9ixt1+VWvLFfybcr
 sNYs1996kXghKvYbTZOFSGiH9e5BL/rwwepE/XkPbTvI1CeFIs3LQtXLfwfKmf/p
 +gIFT7ouY3GHtCivSSBz0iB8Z4pUNaurLmYkIsvUzsbccOMUcq8F4HL8RXWyBwG9
 FK0fwRCXP5zwI9rMePnGcLhR2LXB1n3yDfbfr7ZOd3Vw9rk3s9fj2czpJJMB4Dtz
 Nd4W5EedW6SrqzCMND1ZoE0T48zRooRWsgMv5AEES4epSDhuDLO1cQpkqca7fbfQ
 7rQmJpS8YEvXstbJWh44jZxWdN+W0TPydv2MrpPorB6KAueSTF259Z7zFoo4+S5f
 EPflJfAS+yMLDnl2ARaC
 =78IM
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dt-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt

Pull "Renesas ARM Based SoC DT Updates for v3.19" from Simon Horman:

* Add Add SoC-specific SATA compatible property to r8a7779
* Enable DMA for MMCIF on r8a7791 and r8a7790
* Enable USB-PHY, HS-USB and USB3.0 on r8a7791 and r8a7790
* Enable TMU timer via DT on r8a7778
* Enable CMT timer via DT on r8a73a4
* Add MMP and {SR}GX clocks to  r8a7791 and r8a7790
* Correct scifa2 clock index on r8a7740
* Add missing INTCA for irqpin on r8a7740

* tag 'renesas-dt-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (34 commits)
  ARM: shmobile: r8a7779 dtsi: Add SoC-specific SATA compatible property
  ARM: shmobile: r8a7791: Reference DMA channels in MMCIF DT node
  ARM: shmobile: r8a7790: Reference DMA channels in MMCIF DT nodes
  ARM: shmobile: r8a7791: Add MMCIF0 DT node
  ARM: shmobile: r8a7790: Rename mmcif node to mmc
  ARM: shmobile: r8a7778: Add SoC-specific TMU compatible property
  ARM: shmobile: r8a73a4: Add SoC-specific CMT compatible property
  ARM: shmobile: henninger: enable HS-USB
  ARM: shmobile: koelsch: enable HS-USB
  ARM: shmobile: r8a7791: add HS-USB device node
  ARM: shmobile: lager: enable HS-USB
  ARM: shmobile: r8a7790: add HS-USB device node
  ARM: shmobile: r8a7791: add USB3.0 device node
  ARM: shmobile: lager: enable USB3.0
  ARM: shmobile: r8a7790: add USB3.0 device node
  ARM: shmobile: r8a7794: Add arch_timer to device tree
  ARM: shmobile: bockw-reference: Initialise TMU device using DT
  ARM: shmobile: r8a7778: Add TMU nodes
  ARM: shmobile: armadillo800eva dts: Enable TMU0
  ARM: shmobile: r8a7740 dtsi: Add TMU0 and TMU1 device nodes
  ...

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 22:45:33 +01:00
Arnd Bergmann
67ec55bcb3 Merge branch 'renesas/dt-du' into next/dt
This is a base for the DT updates, merged through the arm-soc
cleanup branch.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 22:44:34 +01:00
Arnd Bergmann
8ecb3ccb74 Renesas ARM Based SoC DT DU Updates for v3.19
* Enable DU using DT on marzen/r8a7779, lager/r8a7790 and koelsch/r8a7791
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUWBRRAAoJENfPZGlqN0++Pm0P/3Qa+X8o4kAZETi+ER+Q7s/B
 d0EGNAw/1b/Si7D2SpftRHvHx5TDL2QiU0QIAPWAcd4u1NJxaYP/SDwRETGQnHbV
 TsL25mASYNByP6DXTrBJneiDS5U88DwVP5q5FW9WEkvIbmtzbxTe/7OnSPAjhxl0
 83kXATiHwdRct4KYLW8ngNhaY/9OUjrL+wZ8ffN/dM0EpSyixXK5bHmWLFC5/HGY
 D8b+zW/NTSBOYTk1OR6QSlp/eGmjRCG2UJn4toHWKse2defxZ/hyTUas4ysgDXzC
 gsWT96yLwmueTRcSBglkKGFbPukWcyKPt7sRphtZlTYbJmpS0ncBTfC2s0+Jv2RR
 VDpeAmB6NXQ5L7Ck51ryt4A8kX88uOgHrmcz+NGJadNE07TZgLJBLDf6aSjDsytr
 NIZq7RFNK975Qv3QldQJX4PYmqcWJMI5WDPnm2buzZsKHkjQrpKIicAiSlwzJX/9
 4SeCF2yrZuJJVnJwit8gOvvBHq5ORQrumAs1xrPQiu570p+6jBjjJ5v4sDvuF5UY
 nXfMTUGrNYe8JSxjf8NTmXJX8DRKSLq0tGcHbzajvKVzuy8Gp6+yFNkrqzQj2HK6
 dy4TLtuvMk5JB4E5Q22xdYYV4TorO28qiuGoGDOOwIx6+940MdY/ucE2Z4i4M2R7
 /NZJCpITds6HxVZJWAKo
 =m0Ov
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dt-du-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/cleanup

Pull "Renesas ARM Based SoC DT DU Updates for v3.19" from Simon Horman:

* Enable DU using DT on marzen/r8a7779, lager/r8a7790 and koelsch/r8a7791

* tag 'renesas-dt-du-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: koelsch: Enable DU device in DT
  ARM: shmobile: koelsch-reference: Remove DU platform device
  ARM: shmobile: lager: Enable DU device in DT
  ARM: shmobile: lager-reference: Remove DU platform device
  ARM: shmobile: marzen: Enable DU device in DT
  ARM: shmobile: dts: Add common file for AA104XD12 panel
  ARM: shmobile: r8a7791: Add DU node to device tree
  ARM: shmobile: r8a7790: Add DU node to device tree
  ARM: shmobile: r8a7779: Add DU node to device tree

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 22:32:46 +01:00
Arnd Bergmann
1cee6a96cd Second Round of Renesas ARM Based SoC Boards Cleanups for v3.19
* marzen-reference: Don't include legacy clock.h
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUWBZoAAoJENfPZGlqN0++TsEQAI43mmu8RgLlCyWTcRu928C9
 6ui0WocKzZWYWkZJCAjtOestossOBHr+jYWISAPTHpVX1S3snKNFz6SdzMJNkYQI
 eFBSVpDsk3eSd+IUI6Z4ZZD/JSGHFRmxRzTp0wkdp4dQCi6/Rskm1IqzX0uF/+6b
 bspYnBP3DPExnAy8NgGrJzjCm8fv9UDAXb7waA7fJrybzjoM0fuwo4NeXZTxrY4F
 1F2rXLgLZvdRX9SuWka0Le4v5TeGB/5mxtBUdwekllaVEs+S0HQcG4faj90NNK8Q
 KR7XYRSZQLjKr4ndpq67iFSACubep1gngcB6TqxYlo9n52RkFOrBwWyyHuCodqfl
 uvjGm8ReZtqbWpkHta8a9hQlQjuX+IYT6Maw+eI0qwCMHl6miNzV/JTslWQVjfY7
 OOn9bJFR8JOJo1K+dstPYuynx1OR7EryzrTcFKtMPCFzArmGb6Xle++y5OiVWkNc
 AZlwAqNfPTU+46oTZd1fb9EdLotjQKzUkFQWGkt34WjA88eqDPQt3S6fv9Mhe6s6
 gjLdtFL5zM8y5IB8wrAQsg9WEjCTekjje3nMCLhhEvHdh/CxZ1uMPRVWrfkoMtvd
 1Jq98j9Q3LFaPZRnicH53FWqzOGgYsvHrtU5v01Bf9PgyvhDc3uIAuwxMKGbN9qo
 pinzk1jmH8XLCoSI5sOz
 =1JF0
 -----END PGP SIGNATURE-----

Merge tag 'renesas-boards-cleanups2-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/cleanup

Pull "Second Round of Renesas ARM Based SoC Boards Cleanups for v3.19" form Simon Horman:

* marzen-reference: Don't include legacy clock.h

* tag 'renesas-boards-cleanups2-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: marzen-reference: Don't include legacy clock.h

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 22:29:59 +01:00
Al Viro
666547ff59 separate kernel- and userland-side msghdr
Kernel-side struct msghdr is (currently) using the same layout as
userland one, but it's not a one-to-one copy - even without considering
32bit compat issues, we have msg_iov, msg_name and msg_control copied
to kernel[1].  It's fairly localized, so we get away with a few functions
where that knowledge is needed (and we could shrink that set even
more).  Pretty much everything deals with the kernel-side variant and
the few places that want userland one just use a bunch of force-casts
to paper over the differences.

The thing is, kernel-side definition of struct msghdr is *not* exposed
in include/uapi - libc doesn't see it, etc.  So we can add struct user_msghdr,
with proper annotations and let the few places that ever deal with those
beasts use it for userland pointers.  Saner typechecking aside, that will
allow to change the layout of kernel-side msghdr - e.g. replace
msg_iov/msg_iovlen there with struct iov_iter, getting rid of the need
to modify the iovec as we copy data to/from it, etc.

We could introduce kernel_msghdr instead, but that would create much more
noise - the absolute majority of the instances would need to have the
type switched to kernel_msghdr and definition of struct msghdr in
include/linux/socket.h is not going to be seen by userland anyway.

This commit just introduces user_msghdr and switches the few places that
are dealing with userland-side msghdr to it.

[1] actually, it's even trickier than that - we copy msg_control for
sendmsg, but keep the userland address on recvmsg.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-11-19 16:22:59 -05:00
Arnd Bergmann
b4e2c4bf4f Third Round of Renesas ARM Based Soc Updates for v3.19
* Always build rcar setup for armv7
   - Fixes allmodconfig build fauilre caused by
     "ARM: shmobile: always build rcar setup for armv7"
 * Add restart callback to sh73a0
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUZAalAAoJENfPZGlqN0++VREP/3y7uJB/lLTr1u0tXiBHGAUX
 ElNcUR7JgDnfWyhVwh9Nyo91kx3A95Z72PzouGQQVVmZc1ZuhIU/XKCjDRRGuTHY
 JiWNacLNVHXCm4tQ//T7MjTEt7jXeUKciSLlq4vSHk4Wn0uUYEWibYDIrrysm0d/
 7JAxJL+D59AUfGcL9rTiuolCtBLgB6V099WE0WNTFeWxktfCORQiiuck3yv54Ar7
 djxLAsjDQgtWszUzaVlLJjeI/X9bRCO1yWzCmSRR4Kek0A/ZTCH5UrpWlc3fkUyz
 zdmRv0IherWn/PB1NTdVlgSDDeDOmIPu9K2JIvaVbfRyRAKehkqjqdEbUYWc+F88
 gICU8y2qBBl1/F8xVhS1dPMyGlTkebzFPAXbUCPVrtfVJdmhAMKoWZ5cGG3gap9L
 nvhaj7CxU3hCfBUUYz7AtmpCBXN6WY/HNldR4JK9rw+eW+NZVOM+P5xnjvyYwhb6
 2oua8RL99qzWxaXbWdIisLK9/YgDQFCF3id/f21Wvawb+uoNJjiyFIOiTJ0SLj9H
 02EX7rrbwm9eVNGgNUJnjPWpW7YcUUPJFk4qv1VLCsHwNyvBfLbs3A6hxG7fJF7x
 HKmMK8FRCtYTWHIUqMkCJ3SQ3ineK6rrmf1HyrNa0rBdr1uhgAVAAsX/LDKDY1Fe
 o9pWDKsfYjNN8KARepBN
 =H86n
 -----END PGP SIGNATURE-----

Merge tag 'renesas-soc3-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc

Pull "Third Round of Renesas ARM Based Soc Updates for v3.19" from Simon Horman:

* Always build rcar setup for armv7
  - Fixes allmodconfig build fauilre caused by
    "ARM: shmobile: always build rcar setup for armv7"
* Add restart callback to sh73a0

* tag 'renesas-soc3-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: always build rcar setup for armv7
  ARM: shmobile: sh73a0: Add restart callback

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 22:11:03 +01:00
Arnd Bergmann
0a1d643450 Second Round of Renesas ARM Based SoC Soc Updates for v3.19
* Enable PCI domains for R-Car Gen2 devices
 * Make APMU resource code SoC-specific
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUZAXRAAoJENfPZGlqN0++qlgQAIne34JegIo6zR6IHUyHzvNK
 QqXeFTQvWyUX5jCVsn79gL7gwOuOoSwDqvrdGOla/LH4zayfG/kloFowxoO6qcdl
 UGKKTJMWgh4BKMusIskjoDShqGDIbyPRMcs+SdmU0+qrGZh9gYfifUZqopQ2+FpL
 2vvPA0vR5J7kfT5Vg8sUkYdbPoivcnL76D5nZonsEcIn0wKEyTL9AY0b5uNMJIxc
 em1zBtt5zICwA5iiJKe7Q59z1st5Z/LDWFQP24uquKZwfShawMddm9kPfLqHlSnr
 SD9qzAaBPar30R+QDfQH7pC4q3MlALAqAmIWIgaBDLubkJwd5N5yTAgQ7Uw4uqH6
 8mwfYY4cnyD9R5CTVUYVn/pY1+QYjjXoYHWlgJkhhsnC8iwYd/FLcXhy793Kk0ac
 b2UusUO/zEILVh2wZT2ki50LIURM7dW0CUhl5Gt4G8c+zMQ8FwtZi33eW9Gpf+1k
 xWPvKMt5rIi0YyI19mxlhdAp2GF2yWR7uycb4FeN/z/ce5GOAaDOWt1Gtib3YjM9
 EQxGFPCWhrTJ/vfufYr4tfPLJeedQ8XpFIKL9ACvIY67zOst5nEkE9g6Lyt23ByU
 NbwQSHV8dpIWGkmps4QazDyy2vwQTrUxa0XPU2JcAxO50UjiHGlK6WOKAn610StU
 xji8z2cdEbNZ5zV/1tfs
 =g7rn
 -----END PGP SIGNATURE-----

Merge tag 'renesas-soc2-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc

Pull "Second Round of Renesas ARM Based SoC Soc Updates for v3.19" from Simon Horman:

* Enable PCI domains for R-Car Gen2 devices
* Make APMU resource code SoC-specific

* tag 'renesas-soc2-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: Enable PCI domains for R-Car Gen2 devices
  ARM: shmobile: r8a7791: Correct number of CPU cores
  ARM: shmobile: Separate APMU resource data into CPU dependant part

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 22:09:18 +01:00
Arnd Bergmann
c39bacad19 Renesas ARM Based SoC Soc Updates for v3.19
* Select CONFIG_ZONE_DMA when CONFIG_ARM_LPAE is enabled
 * Add CA7 arch_timer initialization for r8a7794
 * Handle CA7 arch timer delay
 * Add shmobile_init_late() to sh7372
   - This is consistent with other shmobile SoCs
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUWBX0AAoJENfPZGlqN0++oZoP/1BV0Lzhol3eQ/RlqG9maNCO
 iR2tAdfeScxwqD+VE8pHJQIoyYF8sfKKEaJxsyPl2KP1BzzBXGkNnsp35vNPG8p7
 32AY27+98R7AqJ2ajKAqqdc7ooZLam1BW7kv99XmSKx/9n4Y1RKXaXVweRmxh3d5
 dBaKGVX8ixl7yDZ7prsQqECzh7XN1/rhPXP50nq0aZtR0CRgAPzHyGGooc7s3zIz
 7enlXev2u178I0YH9kujBbB/pjWCxrygKsB7gWp+t/klb9R0MWmVoB8/ae5rFRbq
 E+ULTVJ2G0cnhCTncu7N65/N69rmrbCGaGLBzKqV4Ve3qXImr0L6AqGmAGPMlqJT
 V+C44tGCjTJ7rc2gwv3Y6EPi/BQmEGRAGUp6GLBC0wexQdP6GRa7HrxsiRPuXrF6
 OTG42oGqslMNemF0yZjzJU/SDutLYqYHhbqzl8akGr+PpB58ybjplM0mAyae/pp6
 JTDYqCvlowsXN3FWgSZOIZ8UFM58UElGt9DBGCyEypTUADAFqD0SiUU7QCRFGKaj
 VhfgQ/gzwmKG19C1DgLTZv+8fzR/lvwBBtjwlP0io4Rd52rUGtmxcvH/0KV8INXq
 GsI9mEb6B4ZUFhG0Dgkna1XM9227PIQr126K/PDPjQPNHxVoVMQUuo9DrFNmXMt7
 XEhA8eE9kxnf73DQEPB7
 =bG2T
 -----END PGP SIGNATURE-----

Merge tag 'renesas-soc-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc

Pull "Renesas ARM Based SoC Soc Updates for v3.19" from Simon Horman:

* Select CONFIG_ZONE_DMA when CONFIG_ARM_LPAE is enabled
* Add CA7 arch_timer initialization for r8a7794
* Handle CA7 arch timer delay
* Add shmobile_init_late() to sh7372
  - This is consistent with other shmobile SoCs

* tag 'renesas-soc-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: Select CONFIG_ZONE_DMA when CONFIG_ARM_LPAE is enabled
  ARM: shmobile: rcar-gen2: Add CA7 arch_timer initialization for r8a7794
  ARM: shmobile: sh7372: Add shmobile_init_late()
  ARM: shmobile: Handle CA7 arch timer delay

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 22:02:48 +01:00
Arnd Bergmann
15fee17dba Renesas ARM Based SoC Runtime PM Updates for v3.19
* 8a7740/armadillo800eva legacy PM domain support
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUWBVgAAoJENfPZGlqN0++wbAQAKcogdoxaqGMjkWXcly8oEHZ
 biOmOU49lj/24K9UdapClO8ML7WkDIHOtORCODRy6UXiGBSBw/seydvYFSCZ4JdQ
 zcr2ktHZSOoi/6nliR5NTtrsgfdlV6BiwHoqlf1gyJcgns/5fKi9I+4Oh1Q4i2m2
 2nRX5RBb9qTjJd1yAh9Qu7DaIGQ37KnJHA6u2EvMMk3n+fP8F5G3n7+SglpUlviy
 4xSIDaRKNGrD7PaYJaZIJu8ZMTq4+guQwb8CMILhB+5u+YIqXqiBA2aK0w/y9j3g
 vD5XYYamAxkTTOz7ZWgSsaY4CmSo8w7Vxe/pDVIkF5Zzw3Xxrmo9BHIRcVGOY/c4
 L9uHx0UJSwEtRJiGfXAFHU+FoboUrJMDjamTaa+9rEmb2Fgn3TSq1AQ+/oPnM/S7
 RzyoJ6XMIB4kr7+9JxUAhZxPl834rcH5HcKlgdlwmKylXu9Tiwq5oU2gU11xI0pt
 Vwey8x3lNErEC8zROsozDsHjOVQcvr3t3PZJuppjcgIcUUmCiqMn5i5Cf7NjuH6t
 O6LJmne2nf+fUgW3KyLQbqdvVMXR+4/E7TuDNa6Fqq38QBU0mzFqYD4rb+nFGHag
 JZVk4BWJ1nuawsU9ihTcJ+SHgY19wf24mcnTDICYeZYBlqdfges1FtkGnsCLEg92
 DfZsQij4+dIv9hg9LolD
 =6/TT
 -----END PGP SIGNATURE-----

Merge tag 'renesas-runtime-pm-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc

Merge "Renesas ARM Based SoC Runtime PM Updates for v3.19"

* 8a7740/armadillo800eva legacy PM domain support

* tag 'renesas-runtime-pm-for-v3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: r8a7740: Add A3SM pm domain support
  ARM: shmobile: r8a7740: Add A4SU pm domain support
  ARM: shmobile: r8a7740/armadillo legacy: Add A4R pm domain support
  ARM: shmobile: r8a7740: Add D4 pm domain support
  ARM: shmobile: r8a7740/armadillo legacy: Add A4MP pm domain support
  ARM: shmobile: r8a7740: Add A3SG pm domain support
  ARM: shmobile: r8a7740: Add A3RV pm domain support
  ARM: shmobile: armadillo800eva legacy: Add missing A4S pm domain devices
  ARM: shmobile: armadillo800eva legacy: Add missing A3SP pm domain devices
  ARM: shmobile: r8a7740: Add missing A4S pm domain devices
  ARM: shmobile: r8a7740: Add missing A3SP pm domain devices

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 22:01:24 +01:00
Steven Rostedt (Red Hat)
467aa1f276 x86/kvm/tracing: Use helper function trace_seq_buffer_ptr()
To allow for the restructiong of the trace_seq code, we need users
of it to use the helper functions instead of accessing the internals
of the trace_seq structure itself.

Link: http://lkml.kernel.org/r/20141104160221.585025609@goodmis.org

Tested-by: Jiri Kosina <jkosina@suse.cz>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Mark Rustad <mark.d.rustad@intel.com>
Reviewed-by: Petr Mladek <pmladek@suse.cz>
Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2014-11-19 15:25:36 -05:00
Steven Rostedt (Red Hat)
aec0be2d6e ftrace/x86/extable: Add is_ftrace_trampoline() function
Stack traces that happen from function tracing check if the address
on the stack is a __kernel_text_address(). That is, is the address
kernel code. This calls core_kernel_text() which returns true
if the address is part of the builtin kernel code. It also calls
is_module_text_address() which returns true if the address belongs
to module code.

But what is missing is ftrace dynamically allocated trampolines.
These trampolines are allocated for individual ftrace_ops that
call the ftrace_ops callback functions directly. But if they do a
stack trace, the code checking the stack wont detect them as they
are neither core kernel code nor module address space.

Adding another field to ftrace_ops that also stores the size of
the trampoline assigned to it we can create a new function called
is_ftrace_trampoline() that returns true if the address is a
dynamically allocate ftrace trampoline. Note, it ignores trampolines
that are not dynamically allocated as they will return true with
the core_kernel_text() function.

Link: http://lkml.kernel.org/r/20141119034829.497125839@goodmis.org

Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2014-11-19 15:25:26 -05:00
Steven Rostedt (Red Hat)
9960efeb80 ftrace/x86: Add frames pointers to trampoline as necessary
When CONFIG_FRAME_POINTERS are enabled, it is required that the
ftrace_caller and ftrace_regs_caller trampolines set up frame pointers
otherwise a stack trace from a function call wont print the functions
that called the trampoline. This is due to a check in
__save_stack_address():

 #ifdef CONFIG_FRAME_POINTER
	if (!reliable)
		return;
 #endif

The "reliable" variable is only set if the function address is equal to
contents of the address before the address the frame pointer register
points to. If the frame pointer is not set up for the ftrace caller
then this will fail the reliable test. It will miss the function that
called the trampoline. Worse yet, if fentry is used (gcc 4.6 and
beyond), it will also miss the parent, as the fentry is called before
the stack frame is set up. That means the bp frame pointer points
to the stack of just before the parent function was called.

Link: http://lkml.kernel.org/r/20141119034829.355440340@goodmis.org

Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org
Cc: stable@vger.kernel.org # 3.7+
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2014-11-19 15:24:31 -05:00
Chen Yucong
fa92c58694 x86, mce: Support memory error recovery for both UCNA and Deferred error in machine_check_poll
Uncorrected no action required (UCNA) - is a uncorrected recoverable
machine check error that is not signaled via a machine check exception
and, instead, is reported to system software as a corrected machine
check error. UCNA errors indicate that some data in the system is
corrupted, but the data has not been consumed and the processor state
is valid and you may continue execution on this processor. UCNA errors
require no action from system software to continue execution. Note that
UCNA errors are supported by the processor only when IA32_MCG_CAP[24]
(MCG_SER_P) is set.
                                               -- Intel SDM Volume 3B

Deferred errors are errors that cannot be corrected by hardware, but
do not cause an immediate interruption in program flow, loss of data
integrity, or corruption of processor state. These errors indicate
that data has been corrupted but not consumed. Hardware writes information
to the status and address registers in the corresponding bank that
identifies the source of the error if deferred errors are enabled for
logging. Deferred errors are not reported via machine check exceptions;
they can be seen by polling the MCi_STATUS registers.
                                                -- AMD64 APM Volume 2

Above two items, both UCNA and Deferred errors belong to detected
errors, but they can't be corrected by hardware, and this is very
similar to Software Recoverable Action Optional (SRAO) errors.
Therefore, we can take some actions that have been used for handling
SRAO errors to handle UCNA and Deferred errors.

Acked-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Chen Yucong <slaoub@gmail.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2014-11-19 10:56:51 -08:00
Chen Yucong
e3480271f5 x86, mce, severity: Extend the the mce_severity mechanism to handle UCNA/DEFERRED error
Until now, the mce_severity mechanism can only identify the severity
of UCNA error as MCE_KEEP_SEVERITY. Meanwhile, it is not able to filter
out DEFERRED error for AMD platform.

This patch extends the mce_severity mechanism for handling
UCNA/DEFERRED error. In order to do this, the patch introduces a new
severity level - MCE_UCNA/DEFERRED_SEVERITY.

In addition, mce_severity is specific to machine check exception,
and it will check MCIP/EIPV/RIPV bits. In order to use mce_severity
mechanism in non-exception context, the patch also introduces a new
argument (is_excp) for mce_severity. `is_excp' is used to explicitly
specify the calling context of mce_severity.

Reviewed-by: Aravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>
Signed-off-by: Chen Yucong <slaoub@gmail.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2014-11-19 10:55:43 -08:00
Al Viro
a455589f18 assorted conversions to %p[dD]
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2014-11-19 13:01:20 -05:00
Nicholas Krause
86619e7ba3 KVM: x86: Remove FIXMEs in emulate.c
Remove FIXME comments about needing fault addresses to be returned.  These
are propaagated from walk_addr_generic to gva_to_gpa and from there to
ops->read_std and ops->write_std.

Signed-off-by: Nicholas Krause <xerofoify@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-11-19 18:54:43 +01:00
Paolo Bonzini
997b04128d KVM: emulator: remove duplicated limit check
The check on the higher limit of the segment, and the check on the
maximum accessible size, is the same for both expand-up and
expand-down segments.  Only the computation of "lim" varies.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-11-19 18:40:24 +01:00
Tyler Baker
49e41938f8 ARM: multi_v7_defconfig: fix failure setting CPU voltage by enabling dependent I2C controller
This patch fixes a long standing issue introduced during the 3.16 merge window.
Shortly after the merge, exynos5250-based arndale boards began to produce the
following errors:

kern.err kernel:  exynos-cpufreq exynos-cpufreq: failed to set cpu voltage
kern.err kernel:  cpufreq: __target_index: Failed to change cpu frequency: -22

Further analysis revealed that the S5M8767 voltage regulator used on the
exynos5250-based arndale board utilizes the S3C2410 I2C controller. If the
S3C2410 I2C controller driver is not enabled, the S5M8767 voltage regulator
fails to probe. Therefore a dependency exists between these two drivers.
In the exynos_defconfig both CONFIG_REGULATOR_S5M8767 and CONFIG_I2C_S3C2410
options are enabled, and no errors are produced. However, in the
multi_v7_defconfig only the CONFIG_REGULATOR_S5M8767 option is enabled and the
errors are present. So let's enable the CONFIG_I2C_S3C2410 option in the
multi_v7_defconfig to allow the S5M8767 voltage regulator to probe.

Signed-off-by: Tyler Baker <tyler.baker@linaro.org>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Kevin Hilman <khilman@linaro.org>
2014-11-19 09:35:17 -08:00
Paolo Bonzini
01485a2230 KVM: emulator: remove code duplication in register_address{,_increment}
register_address has been a duplicate of address_mask ever since the
ancestor of __linearize was born in 90de84f50b (KVM: x86 emulator:
preserve an operand's segment identity, 2010-11-17).

However, we can put it to a better use by including the call to reg_read
in register_address.  Similarly, the call to reg_rmw can be moved to
register_address_increment.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-11-19 18:27:27 +01:00
Maciej W. Rozycki
935c2dbec4 MIPS: jump_label.c: Handle the microMIPS J instruction encoding
Implement the microMIPS encoding of the J instruction for the purpose of
the static keys feature, fixing a crash early on in bootstrap as the
kernel is unhappy seeing the ISA bit set in jump table entries.  Make
sure the ISA bit correctly reflects the instruction encoding chosen for
the kernel, 0 for the standard MIPS and 1 for the microMIPS encoding.

Also make sure the instruction to patch is a 32-bit NOP in the microMIPS
mode as by default the 16-bit short encoding is assumed

Signed-off-by: Maciej W. Rozycki <macro@codesourcery.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/8516/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2014-11-19 18:22:09 +01:00
Maciej W. Rozycki
99436f7d69 MIPS: jump_label.c: Correct the span of the J instruction
Correct the check for the span of the 256MB segment addressable by the J
instruction according to this instruction's semantics.  The calculation
of the jump target is applied to the address of the delay-slot
instruction that immediately follows.  Adjust the check accordingly by
adding 4 to `e->code' that holds the address of the J instruction
itself.

Signed-off-by: Maciej W. Rozycki <macro@codesourcery.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/8515/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2014-11-19 18:22:08 +01:00
Ralf Baechle
640465bda5 MIPS: Zero variable read by get_user / __get_user in case of an error.
This wasn't happening in all cases.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2014-11-19 18:22:08 +01:00
Markos Chandras
51b1029d99 MIPS: lib: memcpy: Restore NOP on delay slot before returning to caller
Commit cf62a8b813 ("MIPS: lib: memcpy: Use macro to build the
copy_user code") switched to a macro in order to build the memcpy
symbols in preparation for the EVA support. However, this commit
also removed the NOP instruction after the 'jr ra' when returning
back to the caller. This had no visible side-effects since the next
instruction was a load to the t0 register which was already in the
clobbered list, but it may have undesired effects in the future
if some other code is introduced in between the .Ldone and
the .Ll_exc_copy labels.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: <stable@vger.kernel.org> # v3.15+
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/8512/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2014-11-19 18:22:08 +01:00
Markos Chandras
6a8dff6ab1 MIPS: tlb-r4k: Add missing HTW stop/start sequences
HTW needs to stop and start again whenever the EntryHI register
changes otherwise an inflight HTW operation might use the new
EntryHI register for updating an old entry and that could lead
to crashes or even a machine check exception. We fix this by
ensuring the HTW has stop whenever the EntryHI register is about
to change

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: <stable@vger.kernel.org> # v3.17+
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/8511/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2014-11-19 18:22:08 +01:00
Markos Chandras
58563817cf MIPS: asm: uaccess: Add v1 register to clobber list on EVA
When EVA is turned on and prefetching is being used in memcpy.S,
the v1 register is being used as a helper register to the PREFE
instruction. However, v1 ($3) was not in the clobber list, which
means that the compiler did not preserve it across function calls,
and that could corrupt the value of the register leading to all
sorts of userland crashes. We fix this problem by using the
DADDI_SCRATCH macro to define the clobbered register when
CONFIG_EVA && CONFIG_CPU_HAS_PREFETCH are enabled.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: <stable@vger.kernel.org> # v3.15+
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/8510/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2014-11-19 18:22:08 +01:00
Aaro Koskinen
bbaf113a48 MIPS: oprofile: Fix backtrace on 64-bit kernel
Fix incorrect cast that always results in wrong address for the new
frame on 64-bit kernels.

Signed-off-by: Aaro Koskinen <aaro.koskinen@nsn.com>
Cc: stable@vger.kernel.org
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/8110/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2014-11-19 18:22:07 +01:00
Huacai Chen
7352c8b13d MIPS: Loongson: Set Loongson-3's ISA level to MIPS64R1
In CPU manual Loongson-3 is MIPS64R2 compatible, but during tests we
found that its EI/DI instructions have problems. So we just set the ISA
level to MIPS64R1.

Signed-off-by: Huacai Chen <chenhc@lemote.com>
Cc: John Crispin <john@phrozen.org>
Cc: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: Fuxin Zhang <zhangfx@lemote.com>
Cc: Zhangjin Wu <wuzhangjin@gmail.com>
Patchwork: https://patchwork.linux-mips.org/patch/8320/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2014-11-19 18:22:07 +01:00
Huacai Chen
cc94ea3115 MIPS: Loongson: Fix the write-combine CCA value setting
All Loongson-2/3 processors support _CACHE_UNCACHED_ACCELERATED, not
only Loongson-3A.

Signed-off-by: Huacai Chen <chenhc@lemote.com>
Cc: John Crispin <john@phrozen.org>
Cc: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: Fuxin Zhang <zhangfx@lemote.com>
Cc: Zhangjin Wu <wuzhangjin@gmail.com>
Patchwork: https://patchwork.linux-mips.org/patch/8319/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2014-11-19 18:22:07 +01:00
James Cowgill
5829b0ecc5 MIPS: IP27: Fix __node_distances undefined error
export the __node_distances symbol in the ip27 memory code to fix the
build error:

  Building modules, stage 2.
  MODPOST 311 modules
ERROR: "__node_distances" [drivers/block/nvme.ko] undefined!
scripts/Makefile.modpost:90: recipe for target '__modpost' failed

when building the kernel with:
 CONFIG_SGI_IP27=y
 CONFIG_BLK_DEV_NVME=m

Signed-off-by: James Cowgill <James.Cowgill@imgtec.com>
Cc: <stable@vger.kernel.org> # v3.15+
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2014-11-19 18:22:07 +01:00
James Cowgill
21255dad9d MIPS: Loongson3: Fix __node_distances undefined error
export the __node_distances symbol in the loongson3 numa code to fix the
build error:

  Building modules, stage 2.
  MODPOST 221 modules
ERROR: "__node_distances" [drivers/block/nvme.ko] undefined!
scripts/Makefile.modpost:90: recipe for target '__modpost' failed

when building the kernel with:
 CONFIG_CPU_LOONGSON3=y
 CONFIG_NUMA=y
 CONFIG_BLK_DEV_NVME=m

Signed-off-by: James Cowgill <James.Cowgill@imgtec.com>
Cc: <stable@vger.kernel.org> # v3.17+
Reviewed-by: James Hogan <james.hogan@imgtec.com>
Reviewed-by: Huacai Chen <chenhc@lemote.com>
Cc: linux-mips@linux-mips.org
Cc: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Patchwork: https://patchwork.linux-mips.org/patch/8444/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2014-11-19 18:22:07 +01:00
Nadav Amit
31ff64881b KVM: x86: Move __linearize masking of la into switch
In __linearize there is check of the condition whether to check if masking of
the linear address is needed.  It occurs immediately after switch that
evaluates the same condition.  Merge them.

Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-11-19 18:20:15 +01:00
Nadav Amit
abc7d8a4c9 KVM: x86: Non-canonical access using SS should cause #SS
When SS is used using a non-canonical address, an #SS exception is generated on
real hardware.  KVM emulator causes a #GP instead. Fix it to behave as real x86
CPU.

Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-11-19 18:19:57 +01:00
Nadav Amit
d50eaa1803 KVM: x86: Perform limit checks when assigning EIP
If branch (e.g., jmp, ret) causes limit violations, since the target IP >
limit, the #GP exception occurs before the branch.  In other words, the RIP
pushed on the stack should be that of the branch and not that of the target.

To do so, we can call __linearize, with new EIP, which also saves us the code
which performs the canonical address checks. On the case of assigning an EIP >=
2^32 (when switching cs.l), we also safe, as __linearize will check the new EIP
does not exceed the limit and would trigger #GP(0) otherwise.

Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-11-19 18:19:22 +01:00
Nadav Amit
a7315d2f3c KVM: x86: Emulator performs privilege checks on __linearize
When segment is accessed, real hardware does not perform any privilege level
checks.  In contrast, KVM emulator does. This causes some discrepencies from
real hardware. For instance, reading from readable code segment may fail due to
incorrect segment checks. In addition, it introduces unnecassary overhead.

To reference Intel SDM 5.5 ("Privilege Levels"): "Privilege levels are checked
when the segment selector of a segment descriptor is loaded into a segment
register." The SDM never mentions privilege level checks during memory access,
except for loading far pointers in section 5.10 ("Pointer Validation"). Those
are actually segment selector loads and are emulated in the similarily (i.e.,
regardless to __linearize checks).

This behavior was also checked using sysexit. A data-segment whose DPL=0 was
loaded, and after sysexit (CPL=3) it is still accessible.

Therefore, all the privilege level checks in __linearize are removed.

Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-11-19 18:17:58 +01:00
Nadav Amit
1c1c35ae4b KVM: x86: Stack size is overridden by __linearize
When performing segmented-read/write in the emulator for stack operations, it
ignores the stack size, and uses the ad_bytes as indication for the pointer
size. As a result, a wrong address may be accessed.

To fix this behavior, we can remove the masking of address in __linearize and
perform it beforehand.  It is already done for the operands (so currently it is
inefficiently done twice). It is missing in two cases:
1. When using rip_relative
2. On fetch_bit_operand that changes the address.

This patch masks the address on these two occassions, and removes the masking
from __linearize.

Note that it does not mask EIP during fetch. In protected/legacy mode code
fetch when RIP >= 2^32 should result in #GP and not wrap-around. Since we make
limit checks within __linearize, this is the expected behavior.

Partial revert of commit 518547b32a (KVM: x86: Emulator does not
calculate address correctly, 2014-09-30).

Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-11-19 18:17:10 +01:00
Nadav Amit
7d882ffa81 KVM: x86: Revert NoBigReal patch in the emulator
Commit 10e38fc7cab6 ("KVM: x86: Emulator flag for instruction that only support
16-bit addresses in real mode") introduced NoBigReal for instructions such as
MONITOR. Apparetnly, the Intel SDM description that led to this patch is
misleading.  Since no instruction is using NoBigReal, it is safe to remove it,
we fully understand what the SDM means.

Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-11-19 18:13:27 +01:00
Arnd Bergmann
4a8ab7713b ARM: tegra: Device tree fixes for v3.18-rc5
This contains the serial port numbering fixes that are required for the
 serial port numbering to stay the same with or without the serial core
 making use of the aliases defined in DT.
 
 eMMC is also fixed for TN7 and Roth boards which were using the wrong
 regulators.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQIcBAABAgAGBQJUZNbZAAoJEN0jrNd/PrOhZugP/2SABzzEa1EwAwE0ksM/Z47x
 MYDGUQ7nKuagGNwdHsQPEf+JXLADS1eOzdoQ187SaJdSt0DmbOzoU2IbG9b6Rm4j
 31Al6XL2PdyDOeopMSbrwLHh7+HVhaW7TEQcCMqDJEEgsJIWY0sLuuDLLirpMoaO
 oPD9anXAlVYhcDN8bPdW0gUMrZOGU9rB+q1jTj9kW1qX9xsNHb05WvLiZOwV032d
 Hw0/q/BJ/MzoqXT/Z2UrIPpgcL9xnVw3NUPqE+dCXoAGRSsG6ggue+9TDAVyU7Xw
 Fg4Hwm/qwnk1lAKvMgGw+fjLd/gUdIuo2kAg5sY2tGo+HTbgMMIz2LlXoz3gmx8/
 XnBIKnCqv79kVIyRsOVYLXWrPJx5Ns8rMWXxM/SnD6hPNsudE/rr5dBHP+vS40AU
 V/ty6G7BME1LM99h76Ixoaaw5ojjYLPdTb30SEKePKLsY+8gYh6up5Fuo1SdENlv
 sIuQR1R7pGbsmshfMd5+xNH55QEucYD/IKz59Zc5+fZJBMEViMH2Q2NIsLYCsO1C
 oSN3ck9Gwan2PrEV42uVOHPoQdqta8ZGm02Fl3pJb/2W04/KB3ahdCcPbBI9UGol
 zR1EPbUlEiLN1Fczw7gy0/zrFO2Cq4VzwuHZgwiQvsxY8K2ChmsvloBnt9Rpj+VS
 Xqbno7ENFXdRiIMWoIn0
 =ick3
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-3.18-fixes-for-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into fixes

Pull "ARM: tegra: Device tree fixes for v3.18-rc5" from Thierry Reding:

This contains the serial port numbering fixes that are required for the
serial port numbering to stay the same with or without the serial core
making use of the aliases defined in DT.

eMMC is also fixed for TN7 and Roth boards which were using the wrong
regulators.

* tag 'tegra-for-3.18-fixes-for-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  ARM: tegra: roth: Fix SD card VDD_IO regulator
  ARM: tegra: Remove eMMC vmmc property for roth/tn7
  ARM: dts: tegra: move serial aliases to per-board
  ARM: tegra: Add serial port labels to Tegra124 DT

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 17:35:30 +01:00
Arnd Bergmann
5210436b81 Renesas ARM Based SoC Clock Fixes for v3.18
* Correct IIC0 parent clock for r8a7740
 * Add missing INTCA clock for irqpin module for r8a7740
 * Correct SD3CKCR address on r8a7790
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUYr0lAAoJENfPZGlqN0++JzcP/2dvJvhVrEg44NqxgTXGey/p
 IaWf99PTM5rUXqE+sbddeG1hTPoH4fykRqwkLyeF0TZWyBIi9FA1mmQqtgw8zKOj
 uUHQwsSiuDx+W60ojy5k+qslYIXYH/Sv32mjnoXyjKd3Ukjra9IzZDeDP+F2xCbH
 nMOp4AN29t0DYfXX1GW/oS6I9SG6jDxi0DjeRUxtuEMYg8S64wBRo8auVs8lLdGu
 943bRnBLn3zNtWYWQpcstaN9Uy0vkZGqubpTVAMt6KhMgWM6krGDMuHVKN8vkyXO
 QuMFMBwGzQhZWaulRWslXv5bOUkCPounayUw5zy44uUZkdPUmxnPuOmEMI6zrytn
 EviW0NOPxta5zMYh4Ke8UsgIAwWUhwOVIVj3rSp4V6AKY9p11YdJUTJ40+bc/Gny
 Pmpj8g65f8DpDUFErW44jxefd4XDj1f4yKkFGfenOqnnuzw8XL6zk8qHsy+vlgYu
 WX8DALMihkkkYNu+WmcN5CvbJDmBeD2bU0sYXvpZkeBQBopP3kneaNnazayS34wR
 pTApfAF/o/8+Z3A3NFOMHVBVyRx82HigiA9bcB50K929K6uWRuIxD+MFSC3Da/Ib
 BBhAYzQPhfWzizQ1KebW7ehhvQDzBSWtegmQLa4QK8rrVrtByEzpAvJWbRaYnRn7
 KKK4j8XdY7J/QiI82B/e
 =4DWQ
 -----END PGP SIGNATURE-----

Merge tag 'renesas-clock-fixes-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes

Pull "Renesas ARM Based SoC Clock Fixes for v3.18" from Simon Horman:

* Correct IIC0 parent clock for r8a7740
* Add missing INTCA clock for irqpin module for r8a7740
* Correct SD3CKCR address on r8a7790

* tag 'renesas-clock-fixes-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: r8a7740 legacy: Correct IIC0 parent clock
  ARM: shmobile: r8a7740 legacy: Add missing INTCA clock for irqpin module
  ARM: shmobile: r8a7790: Fix SD3CKCR address

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 17:26:52 +01:00
Arnd Bergmann
3410d4247c Renesas ARM Based SoC DT Fixes for v3.18
* Correct IIC0 parent clock on r8a7740
 * Correct SD3CKCR address to device tree on r8a7790
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUYrybAAoJENfPZGlqN0++V0EP/1VvilCY1UkP4JG142J9GLKl
 8V4H30OfVWr9m9O6LPEwOB/qkl9L6mlyu+oxTi1VI+96542IREfYz/REdy3HmgS2
 zD7SEMikoqNbuPfjimonBSbtjRvNLrdcNBjrP9u0pJEZYmGBJelNWxTHAsp6fxDy
 6nG+/hiNO3i7hyMaZwsYB+5E+9itJkSv4YOS9bh0IAM+WIMN+VasrMSGu9ZKUCT/
 f2zcy2xLR/Zmd2ad6zpfFXDznO6C2vBfGg+fZ97K7H5mkSdkpSR5vYwxVWQY+49L
 iTlevIi9E7ubp3QIgiSDy9qLAmWxL6wGm4Utj90c+jSKeLPd9NTmGAz0bIjVSYND
 b8pmdww3dbYsxyqsWbYlscpYwxN83jynEQx3ZU0dCEA9X7o7SfkQpZlhw/qkNAIu
 3iwEqNbrLLlz9nyl7lMFRUPGcn6pugd5ylq6zhfHR9cRRuMAjkkA/1iTEt4kPXSq
 6wFLArgNSID9ood0mpuVzp0xWmqY9XsxwYQJLfIE53W8CatWP/HAWAEBiunCJVTg
 p0A1WbRrVL0GIQ8QEOjfAo+a0WF0gaiT4Xr66tq6U0o0JwSXr7fws77cl82GXyol
 m7AKJ+lzPS2RQg0DdjZAQ1OkA9laQmXtQb44a6OipMw2JdM3oG5yvK0IAb+sxjh1
 mOiUw0Zggyf/L+PAxeKJ
 =Du2A
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dt-fixes-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes

Pull "Renesas ARM Based SoC DT Fixes for v3.18" from Simon Horman:

* Correct IIC0 parent clock on r8a7740
* Correct SD3CKCR address to device tree on r8a7790

* tag 'renesas-dt-fixes-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: r8a7740 dtsi: Correct IIC0 parent clock
  ARM: shmobile: r8a7790: Fix SD3CKCR address to device tree

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 17:25:59 +01:00
Arnd Bergmann
1b6166e5ba Renesas ARM Based SoC Fixes for v3.18
* Set i2c clks_per_count to 2 on kzm9g
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQIcBAABAgAGBQJUaV6WAAoJENfPZGlqN0++9AUP/iDfxX9KCy+xAn6UzmxGfvRB
 tJuyu+0L/ZAIRSl1ZNaCueluDJWuYOSHTt7n4CP8SYbJIXIXDnlkK7RhRmiPVkkr
 1IolYesNnv0Nb3BIIXob/TdOY0DmoPGwR0Y5aQz16OED4lTYO+DDWfMS9JWLWoy5
 ILAqfGJl3qJop1QIzt9miGALQ06rj/NZdYSxu3fAz5bd5AiVPI9MCqcO0xiISluo
 yAKL48p8alSdiltcaUQ+1PyFLRBaT58MEhrkfylBzlS83HD7MZK6ki1lS1k+Ghcz
 TJpXCZQvy/VIgtgDj7Dm+pGzbChJbwOQkVxzfCWARrPFjQrdsUjMJ8pNWjwCU9qK
 vwJkfqsVaGu77t7+4//llDSp8UYbD5uKF2a1H69O1OJs7hVMBEUVHp2XjLX6ceUz
 OcZa0KWK0f+AlsisSLNuiOJ5LPb43E4ISYhSIs5pXhydhQGb7GFMA6mFFarPb4CA
 EAHWcQ6sqtwVXnISACK2uCY2WO0oL9nCDcA7e4ZBqGFcx55pD6P68wpmztDUYHyb
 q9FmVIyCU5s6dK6q+7YxJ8z/AN89AeiscUN2Q43N6xDnM2VZbrhs9dSsYnTiuPb6
 ecNJmuzi8NwUoAr8dVn39pmAp56WYsKaBwbktGRzFPD0Fy43RdusSHyJzoHq637+
 4FC8N7jGuOqj6dgkaYbP
 =e8cy
 -----END PGP SIGNATURE-----

Merge tag 'renesas-soc-fixes-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes

Pull "Renesas ARM Based SoC Fixes for v3.18" from Simon Horman:

* Set i2c clks_per_count to 2 on kzm9g

* tag 'renesas-soc-fixes-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: shmobile: kzm9g legacy: Set i2c clks_per_count to 2

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2014-11-19 17:22:12 +01:00
Boris Brezillon
accda2736f ARM: at91/dt: at91sam9g45: add ISI node
Add ISI (Image Sensor Interface) DT node + pinctrl definition.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2014-11-19 15:55:17 +01:00
Boris Brezillon
199ec7ab11 ARM: at91/dt: enable the RTT block on the at91sam9m10g45ek board
Enable the RTT and GPBR devices and specify the general purpose register
used to store the current time.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2014-11-19 15:08:52 +01:00
Boris Brezillon
846fdce623 ARM: at91/dt: enable the RTT block on the sam9g20ek board
Enable the RTT and GPBR devices and specify the general purpose register
used to store the current time.

Enable wakeup on RTT event on the shutdown controller device.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2014-11-19 15:08:51 +01:00
Boris Brezillon
1ff3beca55 ARM: at91/dt: add GPBR nodes
Add GPBR (General Purpose Block Backup Registers) nodes.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2014-11-19 15:08:51 +01:00
Boris Brezillon
9b5a067507 ARM: at91/dt: add RTT nodes to at91 dtsis
at91sam926x, at91sam9g45 and at91sam9rl SoCs all have at least one RTT
block.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2014-11-19 15:08:50 +01:00
Alexandre Belloni
30043f4ebb ARM: at91/dt: at91sam9rl: add rtc
Add rtc support to the at91sam9rl dtsi file.

Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
2014-11-19 15:08:50 +01:00