The cpu_has_local_ebase macro is, confusingly, not used to indicate
whether the EBase register is local to a CPU or not. Instead it
indicates whether we want to generate the TLB refill exception vector
each time a CPU is brought online. Doing this makes little sense on any
system, since we always use the same value for EBase & thus we cannot
have different TLB refill exception handlers per CPU.
Regenerating the code is not only pointless but also can be actively
harmful, as commit 8759934e2b ("MIPS: Build uasm-generated code only
once to avoid CPU Hotplug problem") described. That commit introduced
cpu_has_local_ebase to disable the handler regeneration for Loongson
machines, but this is by no means a Loongson-specific problem.
Remove cpu_has_local_ebase & simply generate the TLB refill handler once
during boot, just like the rest of the TLB exception handlers.
Signed-off-by: Paul Burton <paul.burton@mips.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Cc: linux-mips@vger.kernel.org
We already know whether a CPU has r3k style exceptions, including TLB
exceptions, by checking cpu_has_3kex. Remove the list of CPU types in
build_tlb_refill_handler() & check cpu_has_3kex instead.
Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: linux-mips@vger.kernel.org
Currently areas where we need to determine whether the TLB is R3k-style
need to check for either of CONFIG_CPU_R3000 || CONFIG_CPU_TX39XX.
Introduce a new CONFIG_CPU_R3K_TLB & select it from both of the above,
allowing us to simplify checks for R3k-style TLBs by only checking for
this new Kconfig option.
Signed-off-by: Paul Burton <paul.burton@mips.com>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Cc: linux-mips@vger.kernel.org
Highlights
- odroid-c1: use MAC address from efuse
- add VDD_EE regulator to several boards
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAl1cbb0ACgkQWTcYmtP7
xmXlwhAAhPL9N9p4sLYjGy7CMGYzN9N5SJ7mufADC2K1uTDe7BREtgkFZaFRcnTp
MBuCkrLb+aRn8iIsdKHo1Y1uOJ5XHo5kXMCEWzT2BsA9ilzBZ7u+/Zeb3izi7OCy
Vti92xWePzsTQqtYBVnOhmwX/QpGLeED3XC+t87IrjI7PMiyGUjq34PPf9QycdAh
Ck0o8SFCb8OuVqXsbiCyKkbZs7naAiuJKXIMxRQj/4THE1mMjfgVxKYZpMiUI0pQ
CdCucZ5RJ3ylhmA6T8ikhxbUWRrZwrtklgUsPuZAVIyXh/eOYlpCunPsdsDlRm8z
a8DfNOzIXLyQWfYrNjFE7NShEPkb7aV4HN4E73CCgvAivthoh5hpcmv4FnFsqH20
frta6qcvKzNpk88mc95NQJ3a5OWVaGK6CJYfGK2VBI6+y5+QKXntUzp9kxiZqysH
6/ghU7xP8QSdynno88UqHubwpyMEfWVAIymS3ziRheu7LX02OIGE0ZEpmzu5e7gU
kozGilY6pQr7lHP9K1LlKI1DYi5P3UFGNF09YjZPsp9xiPeQKXAmBkWUrYFdk1+x
urpsrL3Pd+RD77ZOq8xTHnO3zL3vKzhIh2ginnzaC9zxjKR72VEgU90SLy/oDboT
W8x2oG5UrkDVPMrBSiNWg5IUNqYjSLJonIf+afXbr9cqlwX3Y4I=
=zCaj
-----END PGP SIGNATURE-----
Merge tag 'amlogic-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dt
ARM: dts: Amlogic updates for v5.4
Highlights
- odroid-c1: use MAC address from efuse
- add VDD_EE regulator to several boards
* tag 'amlogic-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
ARM: dts: meson8b: odroidc1: use the MAC address stored in the eFuse
ARM: dts: meson8b: mxq: add the VDDEE regulator
ARM: dts: meson8b: odroidc1: add the VDDEE regulator
ARM: dts: meson8b: ec100: add the VDDEE regulator
ARM: dts: meson8b: add the PWM_D output pin
ARM: dts: meson8b: add ethernet fifo sizes
Link: https://lore.kernel.org/r/7hzhk3bi96.fsf@baylibre.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
the Kevin Chromebook and a new board the Leez P710 SBC.
-----BEGIN PGP SIGNATURE-----
iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAl1X/7UQHGhlaWtvQHNu
dGVjaC5kZQAKCRDzpnnJnNEdgSeCB/4o5aQ6PRfpm+TnXIdiw1GqnhAp3lhQLtT/
jZkSAiANcH2tFyFiPOjPDARbnd7T2J8ZxfBzJt5/5z/VsCpwh0BQGJFXq4Htbnfj
d9YkhS7N9y1tRuCregpD/0LcKXSdttmYXiiHUzuL3FzNtU1U5buXf4pyDDwqtvNN
AYiKYvUixO+Sr3J71Ww4WWXZUt/m2VEN4MPvjjheMSWCSmSV3pw1yjKSb+MpovfP
tBdPjOCKizDm2W/+5eLCH4HbV6A7bp5GA4v71Qt9B5UT1RxdZ4befx9JJqgJteDw
uEyHiSyf4jdjczHAxMryuev0yiU2r/UsGGintDLMggpAI6dcXk9O
=52SD
-----END PGP SIGNATURE-----
Merge tag 'v5.4-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/dt
PWM-Fan and nor-flash for the RockPro64, a better display mode for
the Kevin Chromebook and a new board the Leez P710 SBC.
* tag 'v5.4-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
arm64: dts: rockchip: Add dts for Leez RK3399 P710 SBC
arm64: dts: rockchip: enable internal SPI flash for RockPro64.
arm64: dts: rockchip: Add PWM fan for RockPro64
arm64: dts: rockchip: Specify override mode for kevin panel
Link: https://lore.kernel.org/r/20190819141659.26414-1-dinguyen@kernel.org
Link: https://lore.kernel.org/r/2362486.gYoCZEsBuK@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
areas and also a 100ms speedup as a delay isn't needed anymore.
New boards are Tiger and Fievel from the Veyron family and the Mecer Xtreme
Mini S6, which I think is the first consumer-grade rk3229-based device in
the kernel.
-----BEGIN PGP SIGNATURE-----
iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAl1X/0cQHGhlaWtvQHNu
dGVjaC5kZQAKCRDzpnnJnNEdgT2RB/0X8SGcSRLL6vGCBH4vbATtnh1ceh6O2GA8
NO1N+OgQjPQWQyVx8ZWb7oaWgECwnXn41WT1HP9t0KB4w4sILZEswJrDRKV0dj1o
g+8tpgdxzJ7YF+vEkW1EcdPU2d1bRBJZ4qN38t2/StWg5WCrfThM2zBEUEJyWHpr
QYfSVXmhvPHISyZE+/k0tdgBhEi3KQph7ZVPhsmhugd1PeIV5lMDTVx4H7ljdnuC
/rVM/Yj+93r23bMgp6VGaMQmidlymYWCwxdTM4d4vDozViaykJ38BwDKVzfXX99y
hxA2BxKjp+37tuy4r4IO3kuqTEH6b4rvZzdNxJwBrGmIcBfv3n9j
=b567
-----END PGP SIGNATURE-----
Merge tag 'v5.4-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/dt
A lot more love for Veyron devices with cleanups in the display and wifi
areas and also a 100ms speedup as a delay isn't needed anymore.
New boards are Tiger and Fievel from the Veyron family and the Mecer Xtreme
Mini S6, which I think is the first consumer-grade rk3229-based device in
the kernel.
* tag 'v5.4-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
ARM: dts: add device tree for Mecer Xtreme Mini S6
Revert "ARM: dts: rockchip: add startup delay to rk3288-veyron panel-regulators"
ARM: dts: rockchip: Add pin names for rk3288-veyron fievel
ARM: dts: rockchip: A few fixes for veyron-{fievel,tiger}
ARM: dts: rockchip: Cleanup style around assignment operator
ARM: dts: rockchip: add veyron-tiger board
ARM: dts: rockchip: add veyron-fievel board
dt-bindings: ARM: dts: rockchip: Add bindings for rk3288-veyron-{fievel,tiger}
ARM: dts: rockchip: consolidate veyron panel and backlight settings
ARM: dts: rockchip: move rk3288-veryon display settings into a separate file
ARM: dts: rockchip: Limit WiFi TX power on rk3288-veyron-jerry
ARM: dts: rockchip: Specify rk3288-veyron-minnie's display timings
ARM: dts: rockchip: Specify rk3288-veyron-chromebook's display timings
Link: https://lore.kernel.org/r/1611583.rKl1eQBRh8@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
1. Add AHCI to Exynos5250,
2. Add camera and GPU power domains to Exynos5422,
3. Minor cleanup.
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAl1W0McQHGtyemtAa2Vy
bmVsLm9yZwAKCRDBN2bmhouD11NdD/9gBRh/aDmWNcY7nAtUzQKeexRdG0BQtEXO
sRot5nSJPmlz/AtCLtX+q8R+ZpbpDtLj3GWYHPE+1tU8JFoSaLgAvP8lSqK/n+mQ
52uYKRWKjhrZgCRXVbMJMCxmse7V+QvA5r/182T+TIJBcfnWPyJ6U0UpI89mDaqv
qTJkB/bUh6i2O+HJBj2QOUTi91J5Uo3OEemSksHezfVlhShVC6JdvTCnJ+eUCukY
qRScDpORRigoxIIhpU38af7pxfkHteIWiboZ24UrqPbI9lIV7ipUY9iRxaSKTF7T
ZSNNMUc9WVYmqxSLb9SBEpfXQuPG4v0ENdxh7ZI17hv3tjTrbp6R3YjCgqWuFJxr
2hfW5wJFdl5QrxESN5KiudtSoW8ArFNH/Sl1funy/fJu8foJznpe31ELlvl1hmgG
n1MqY4uMhieozMse/OJd32zs5amqNkUo9vsvg+R/Bm5rrWMwmyyBcyrLd20/3Qar
OwlKHKoX9OgjitQS0UUsDc6MB+Q4qWUTpdaG4eEKXty0OxRGvSoJvZmeG8rWqidi
tA2kaB60+XjB6CrefQoSI68z4qkNT5DXibrn9tMiK5mmzfempLA2RH5A+4sW0GKi
3KC1djjThCMs4yKpfcSVqP/c37+mNE0r68K0UFIWPSTpbRenEvQxKrAdd6vRYzmL
Ntz7AggayQ==
=HMId
-----END PGP SIGNATURE-----
Merge tag 'samsung-dt-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/dt
Samsung DTS ARM changes for v5.4
1. Add AHCI to Exynos5250,
2. Add camera and GPU power domains to Exynos5422,
3. Minor cleanup.
* tag 'samsung-dt-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
ARM: dts: exynos: Add CAM power domain to Exynos5422/5800
ARM: dts: exynos: Add G3D power domain to Exynos542x
ARM: dts: exynos: Move MSC power domain to the right (sorted) place
ARM: dts: exynos: Add port map to Exynos5250 AHCI node
ARM: dts: exynos: Use space after '=' in exynos4412-itop-scp-core
Link: https://lore.kernel.org/r/20190816163042.6604-2-krzk@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The first change moves platform-specific asm-offsets.h to arch/arm/mach-omap2
to fix iessu with parallel build with CONFIG_IKHEADERS, and the second change
removes a useless kfree.
Note that the first change causes a trivial merge conflict with the iommu
changes for arch/arm/mach-omap2/Makefile.
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAl1kCcERHHRvbnlAYXRv
bWlkZS5jb20ACgkQG9Q+yVyrpXPOfhAA3yv95lG1eyrhJ+E/kOWrinDARIDJvh+2
Ha1A3HkyJ+qzNg1GdeQ5exU3/ZsJRvKdU5MSmldnrvg9jWYFcBMeF8vtR7ZMEdzJ
GDW4o211WEmca/ni9ChNmfVWPF5WSoeMQLa3Ytg40lc1v7CuHYSrmrB2Rqjtpnon
uokTt3hjJHCX/Q5wvf8sWdhAynPbxq7zcCMNbyGxzaoKolWas6bpLmcNwHp4zDi0
JE+bd7sc9ZvBt8mnsJ9XUMVdQQ75jD3LeJyYzixMxNxpfUsnc3WZDZgaxFpW1hCK
eBTRNQLiwZ9MsbgWCUdY7Brd+GIW15HPX+r5s2GhtXXqex+abfSRRqH6P7uneAmn
9CfxzYshITfl7R7nSd1HzGKg4DjNmsktFFFyKWd/H8xvjI5lnt9M1VSyRVJiY+1z
bw4IV+ag+n3NfOzhpi3ddB9uFhSZtpJ1SH7Ynj7NS3YSfWamJs93Z0RXVAZXYNM0
Vwj+g/YfgtY7qnSGcbfoBPLh7gmGRpsVOxOOmuMlkwcVjN1Pvb3wqT+JGUiCxm6d
rdcazAxjc2rvnJuJc1stzrSBMT5AZdxAw+DOTTLRfEcBnf6C5mhGFRyOCxhxL2QB
Q2MWI1aHWqjmu1QTnBLDoUNyaKyxrZm00cq2b4U8lh7xO4v3ACks2jXuD5zQjzjo
nTReIX6lPeQ=
=DRR4
-----END PGP SIGNATURE-----
Merge tag 'omap-for-v5.4/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/soc
SoC changes for omap variants for v5.4
The first change moves platform-specific asm-offsets.h to arch/arm/mach-omap2
to fix iessu with parallel build with CONFIG_IKHEADERS, and the second change
removes a useless kfree.
Note that the first change causes a trivial merge conflict with the iommu
changes for arch/arm/mach-omap2/Makefile.
* tag 'omap-for-v5.4/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
ARM: OMAP2+: Delete an unnecessary kfree() call in omap_hsmmc_pdata_init()
ARM: OMAP2+: move platform-specific asm-offset.h to arch/arm/mach-omap2
Link: https://lore.kernel.org/r/pull-1567016893-318461@atomide.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
- MAINTAINERS updates
- a generated headers parallel build fix
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEycoQi/giopmpPgB12wIijOdRNOUFAl1i7TUACgkQ2wIijOdR
NOWiLA/7BEmdnsnrfDxK+fKvAP1h7U+r/5SXeIrDfBZ5BVeYKR2hiF6go8UoNuaQ
LWcB6GFTSj+Js26qrmgMs7S9eb8u4OkLN6j9mI6TaWpvsWKZyR3ffpb4SYgLqgPK
GHVB7xI2GyJzlGklmGX63NkBDcBAaol+oOO8YznXkruxASfZzCes/ibCQfj5Ce7x
PTKZppASsOhUo+bEipyBTyYnu9xotmPD6CHYZ4kKL9IOqOJkXJHf5su/pgBMkHGd
Sa3SGFOWPw5PqZLZdC/VN98oiaFC7/AiF/YNV1VuJ+Fj/VZ9yk4F9wHGPoG3Sv+7
x8INFPw9gDkAy1Fuoh87ImVkaTpCWJYLpurGhSj77WwaUdq1D0ciPn2yf3BTq6Kl
pUBi8sRq5pr45/oKkVQ191VLtkMO2FXhzyriCu+NdRmI7OEiuQ47bdysC/kcOg+Z
lrGveqWOa+aOPI3ZyHA3vQMmNaR1yxRhU6CyWJn9skAFIQUAbi7dDF4b1+32nQvm
8u1ydE4vYt0OJpMJIJkpUB6NIC3vF1USp83OKKc6D3OpiFXi0d9hgx/GMyWuiSvt
w01JGwQ9j3KiyCvi1YsIhlzhuAThiOPbLAsutWB2t9/kgsXHWD48GgzovsJDbIld
pmh0enifJXjpJLAsHMGrL1m6ITdpUqFyaBAJRV2Df3THWlC/ZdE=
=pqcm
-----END PGP SIGNATURE-----
Merge tag 'at91-5.4-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into arm/soc
AT91 SoC for 5.4
- MAINTAINERS updates
- a generated headers parallel build fix
* tag 'at91-5.4-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
mailmap: map old company name to new one @microchip.com
MAINTAINERS: at91: remove the TC entry
MAINTAINERS: at91: Collect all pinctrl/gpio drivers in same entry
ARM: at91: move platform-specific asm-offset.h to arch/arm/mach-at91
Link: https://lore.kernel.org/r/20190825203222.GA22800@piout.net
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
- Drop AR8031 PHY TX delay adjusting from i.MX7D machine code, as
it's superfluous due to the recent changes to Atheros AT803X driver.
- Select TIMER_IMX_SYS_CTR for arm64 ARCH_MXC platform, since the
system counter is needed as broadcast timer for cpuidle support.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABAgAGBQJdYoI2AAoJEFBXWFqHsHzOxAsH/iKDF5cqmAOdNbD/0stFIxCV
ic+OX45aXyzbtSmD44sp0zuqGVA5RRu/OwYWlKA7WZHoeUUfbKMsMw9knO/ZaQTD
m9CwMuuA8bZhJUWSjbSpqlLJfdqzhnzkGuyq9A6IDqjf0y7eILD7km+YAZPNTBvo
LvvJnLhCI7FKY8miWpMe1pAY3XvzPTqlb1J0LywrJowXyVU9fJWVh7wSPTeDYsS1
+PQCTsnTX5Lm5rvV7px9ADwIzYq7qwuIVOfXwG+H1yMJRefQaWKePGb36KOHU+9S
isHiSYFSKw0BzLIGr2uap54LKaaprJiHdvUMncU8c3M+2hjWWNtlDkgZwUULluM=
=8VOJ
-----END PGP SIGNATURE-----
Merge tag 'imx-soc-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/soc
i.MX SoC changes for 5.4:
- Drop AR8031 PHY TX delay adjusting from i.MX7D machine code, as
it's superfluous due to the recent changes to Atheros AT803X driver.
- Select TIMER_IMX_SYS_CTR for arm64 ARCH_MXC platform, since the
system counter is needed as broadcast timer for cpuidle support.
* tag 'imx-soc-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
ARM: imx: stop adjusting ar8031 phy tx delay
arm64: Enable TIMER_IMX_SYS_CTR for ARCH_MXC platforms
Link: https://lore.kernel.org/r/20190825153237.28829-2-shawnguo@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This adds support for the new ASPEED AST2600 BMC SoC.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE+nHMAt9PCBDH63wBa3ZZB4FHcJ4FAl1ik9UACgkQa3ZZB4FH
cJ7tiQ/+MBcqjS9mutOpfQ7dyUEmwNuauehpHkz/3pv5xBMcV3dEnn6ZGSsHqg+5
m8HUpALdrytfDAoNfOuSg+oJnUaKLZ9n2HEycwcOVvtFAeOjEKRxAKQZfseS5BF9
nSXy4aE8EkjzwNGSrhCISM+4Gh82Ms/a+wnQ0Oe4O0UEopPz0n89Sw8Synw5MO6+
+BbtY49y4yQKLYRhNBRT0+g0NQNDwrztoxwI1goYYZd8QgLAFQZdaHansumRPXbx
xKiqOQYCjB1jc7xMgTibqg57W1uzGFCJniy022QZ4ZDNFYynV9fSKFXiJaT7Eac0
4qOm/2Q3jBLPbzclIAeAYttmtSZEFPSiLukdQJ2yYLuNRJf7EtUXRaUZjXtve+u4
BON4/hcZ69e5Hklp52ztdGp42AymTuqdjNkHI3mWaxo+Be8fAz2nBy+FWq3j5pkt
v068jEjqjOunJ/F5QNHfHAS5PvdlM0Nrl7Rc5iCFn2KVYaqDWxJvkwUBO09D3IsZ
CN2J0y3LgTkTp6cCW8K7doZgdHtbEzu6wT12iseGnF4IIfg1g7wqI9gM4Ee8u3ey
4YQqdce34hCn9QrLquqZAtmEj+csyASg+lFY1vOsveDDbQPzpQem7dfMGmabghNJ
qWgVwDSk4i3Tsy4TedOxE5WlDRzJnB7UBVZxNnQzBjz8Utzg/jo=
=KLEf
-----END PGP SIGNATURE-----
Merge tag 'aspeed-5.4-arch' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed into arm/soc
ASPEED architecture updates for 5.4
This adds support for the new ASPEED AST2600 BMC SoC.
* tag 'aspeed-5.4-arch' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed:
ARM: aspeed: Enable SMP boot
ARM: aspeed: Add ASPEED AST2600 architecture
ARM: aspeed: Select timer in each SoC
dt-bindings: arm: cpus: Add ASPEED SMP
Link: https://lore.kernel.org/r/CACPK8Xc1aSp5fXL3cEzC9SJsCXG2JwsSPpQrW3a09dkvhCyHHA@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Single cleanup patch handling type checks using cppcheck tool
(bitwise shift by more than 31 on a 32 bit type)
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAl1T44QACgkQAEG6vDF+
4picTRAAnSvwq6SMWQtwEonJ+tHhiwHgfdyU6lbWg2nqmugU4QezrKhWI8047vD2
IY8bS0m4PRxWLa5lSAIOpKv2zpl/+TTkApun66RpdVhKzS6JnmuVQyoe+lhZUKbF
MPeKAk82HTresu/jQN4D9OuPFSC6/NbOEMi3NwPIT2ncV+UVzrxZ3LR9lBrJRviV
hjOv7gN48tThBepUoJjhLdjfddAdrqOYhfXPE95OhNBzQ9mg+3Gk9kH4JBfFm0Q4
SdL3fBznhJtw2KyvqM480nxO2BPvWo425EGX1T8R2CuoApoPk9D3jgk6anlJIhP8
1A5rDQWsuQAmGHmf2dbyWBFk4Mylf1Vo+IWrClPrNwzCfPoKK1IDEQQ6vIheP2pt
RrrGgGTj13aU8xbH3VYTF58u71YytwexUFU5RfnNcj1v3MWdrnxPekrCuazxE6dC
CJ+NANZr8GYvA1eKwu5pfRWrkYkcFqHYiHIQtWb6pvP/WetYNUjmM+L7epWesrk3
eyJqUKXmQoA1Vdd9L9QYUaicRUCMrDwuUBcQSF7DzZal8KaUBgOlwQVO1Pihbt0+
IdE8vTZLeIryY8Q88z/b42nH9IAjFj9+FCoCfkHrfAnH1c3Lv9vUd4pTDbf9RV5n
NdPSlYQYK+9xu0yVnF62eN3h4iJWUG2lRczmPdpEEfth22TRZFo=
=JqeJ
-----END PGP SIGNATURE-----
Merge tag 'vexpress-update-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/soc
ARMv7 Vexpress update for v5.4
Single cleanup patch handling type checks using cppcheck tool
(bitwise shift by more than 31 on a 32 bit type)
* tag 'vexpress-update-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
ARM: vexpress: Cleanup cppcheck shifting warning
Link: https://lore.kernel.org/r/20190814172441.26143-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
s390_base_mcck_handler was used during system reset if diag308 set was
not available. But after commit d485235b00 ("s390: assume diag308 set
always works") is a dead code and could be removed.
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
When cpus != maxcpus cpuidle-haltpoll will fail to register all vcpus
past the online ones and thus fail to register the idle driver.
This is because cpuidle_add_sysfs() will return with -ENODEV as a
consequence from get_cpu_device() return no device for a non-existing
CPU.
Instead switch to cpuidle_register_driver() and manually register each
of the present cpus through cpuhp_setup_state() callbacks and future
ones that get onlined or offlined. This mimmics similar logic that
intel_idle does.
Fixes: fa86ee90eb ("add cpuidle-haltpoll driver")
Signed-off-by: Joao Martins <joao.m.martins@oracle.com>
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
These wrappers don't provide a real benefit over just using
set_memory_x() and set_memory_nx().
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@surriel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20190826075558.8125-4-hch@lst.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
No module currently messed with clearing or setting the execute
permission of kernel memory, and none really should.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@surriel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20190826075558.8125-2-hch@lst.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
When building with C=2, sparse makes note of a number of things:
arch/x86/events/intel/rapl.c:637:30: warning: symbol 'rapl_attr_update' was not declared. Should it be static?
arch/x86/events/intel/cstate.c:449:30: warning: symbol 'core_attr_update' was not declared. Should it be static?
arch/x86/events/intel/cstate.c:457:30: warning: symbol 'pkg_attr_update' was not declared. Should it be static?
arch/x86/events/msr.c:170:30: warning: symbol 'attr_update' was not declared. Should it be static?
arch/x86/events/intel/lbr.c:276:1: warning: symbol 'lbr_from_quirk_key' was not declared. Should it be static?
And they can all indeed be static.
Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/128059.1565286242@turing-police
Signed-off-by: Ingo Molnar <mingo@kernel.org>
SD_BALANCE_{FORK,EXEC} and SD_WAKE_AFFINE are stripped in sd_init()
for any sched domains with a NUMA distance greater than 2 hops
(RECLAIM_DISTANCE). The idea being that it's expensive to balance
across domains that far apart.
However, as is rather unfortunately explained in:
commit 32e45ff43e ("mm: increase RECLAIM_DISTANCE to 30")
the value for RECLAIM_DISTANCE is based on node distance tables from
2011-era hardware.
Current AMD EPYC machines have the following NUMA node distances:
node distances:
node 0 1 2 3 4 5 6 7
0: 10 16 16 16 32 32 32 32
1: 16 10 16 16 32 32 32 32
2: 16 16 10 16 32 32 32 32
3: 16 16 16 10 32 32 32 32
4: 32 32 32 32 10 16 16 16
5: 32 32 32 32 16 10 16 16
6: 32 32 32 32 16 16 10 16
7: 32 32 32 32 16 16 16 10
where 2 hops is 32.
The result is that the scheduler fails to load balance properly across
NUMA nodes on different sockets -- 2 hops apart.
For example, pinning 16 busy threads to NUMA nodes 0 (CPUs 0-7) and 4
(CPUs 32-39) like so,
$ numactl -C 0-7,32-39 ./spinner 16
causes all threads to fork and remain on node 0 until the active
balancer kicks in after a few seconds and forcibly moves some threads
to node 4.
Override node_reclaim_distance for AMD Zen.
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Mel Gorman <mgorman@techsingularity.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@surriel.com>
Cc: Suravee.Suthikulpanit@amd.com
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Thomas.Lendacky@amd.com
Cc: Tony Luck <tony.luck@intel.com>
Link: https://lkml.kernel.org/r/20190808195301.13222-3-matt@codeblueprint.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
While it does make sense to allow CONFIG_NUMA and !CONFIG_SMP in
theory, it doesn't make much sense in practice.
Follow other architectures and make CONFIG_NUMA select CONFIG_SMP.
The motivation for this patch is to allow a new NUMA variable to be
initialised in kernel/sched/topology.c.
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@surriel.com>
Cc: Suravee.Suthikulpanit@amd.com
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Thomas.Lendacky@amd.com
Cc: Tony Luck <tony.luck@intel.com>
Link: https://lkml.kernel.org/r/20190808195301.13222-2-matt@codeblueprint.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
On x86_64 we can do a u64 * u64 -> u128 widening multiply followed by
a u128 / u64 -> u64 division to implement a sane version of
mul_u64_u32_div().
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
After commit cf65a0f6f6 ("dma-mapping: move all DMA mapping code to
kernel/dma") some of the files are referring to outdated information,
i.e. old file names of DMA mapping sources. Fix it here.
Note, the lines with "Glue code for..." have been removed completely.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Since x86 instruction decoder is not only for kprobes,
it should be tested when the insn.c is compiled.
(e.g. perf is enabled but kprobes is disabled)
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: cbe5c34c8c ("x86: Compile insn.c and inat.c only for KPROBES")
Signed-off-by: Ingo Molnar <mingo@kernel.org>
When the 'start' parameter is >= 0xFF000000 on 32-bit
systems, or >= 0xFFFFFFFF'FF000000 on 64-bit systems,
fill_gva_list() gets into an infinite loop.
With such inputs, 'cur' overflows after adding HV_TLB_FLUSH_UNIT
and always compares as less than end. Memory is filled with
guest virtual addresses until the system crashes.
Fix this by never incrementing 'cur' to be larger than 'end'.
Reported-by: Jong Hyun Park <park.jonghyun@yonsei.ac.kr>
Signed-off-by: Tianyu Lan <Tianyu.Lan@microsoft.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: 2ffd9e33ce ("x86/hyper-v: Use hypercall for remote TLB flush")
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Maxim 77802 PMIC is a main PMIC for the following Exynos5 based boards:
Odroid XU, Chromebook Pit and Chromebook Pi. Driver for its voltage
regulator is needed very early during boot to properly instantiate SD/MMC
devices and mount rootfs, so change that driver to be compiled-in.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Commit aff138bf8e ("ARM: dts: exynos: Add TMU nodes regulator supply
for Peach boards") assigned LDO10 to Exynos Thermal Measurement Unit,
but it turned out that it supplies also some other critical parts and
board freezes/crashes when it is turned off.
The mentioned commit made Exynos TMU a consumer of that regulator and in
typical case Exynos TMU driver keeps it enabled from early boot. However
there are such configurations (example is multi_v7_defconfig), in which
some of the regulators are compiled as modules and are not available
from early boot. In such case it may happen that LDO10 is turned off by
regulator core, because it has no consumers yet (in this case consumer
drivers cannot get it, because the supply regulators for it are not yet
available). This in turn causes the board to crash. This patch restores
'always-on' property for the LDO10 regulator.
Fixes: aff138bf8e ("ARM: dts: exynos: Add TMU nodes regulator supply for Peach boards")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
The Exynos3250 ADC has its own compatible because of differences from
other Exynos SoCs. Therefore it is not entirely compatible with
samsung,exynos-adc-v2. Remove the samsung,exynos-adc-v2.
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Identical to __put_user(); the __get_user() argument evalution will too
leak UBSAN crud into the __uaccess_begin() / __uaccess_end() region.
While uncommon this was observed to happen for:
drivers/xen/gntdev.c: if (__get_user(old_status, batch->status[i]))
where UBSAN added array bound checking.
This complements commit:
6ae865615f ("x86/uaccess: Dont leak the AC flag into __put_user() argument evaluation")
Tested-by Sedat Dilek <sedat.dilek@gmail.com>
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: broonie@kernel.org
Cc: sfr@canb.auug.org.au
Cc: akpm@linux-foundation.org
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: mhocko@suse.cz
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lkml.kernel.org/r/20190829082445.GM2369@hirez.programming.kicks-ass.net
The actual device name of the SPI controller being registered on EP93xx is
"spi0" (as seen by gpiod_find_lookup_table()). This patch fixes all
relevant lookup tables and the following failure (seen on EDB9302):
ep93xx-spi ep93xx-spi.0: failed to register SPI master
ep93xx-spi: probe of ep93xx-spi.0 failed with error -22
Fixes: 1dfbf334f1 ("spi: ep93xx: Convert to use CS GPIO descriptors")
Cc: stable@vger.kernel.org
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Link: https://lore.kernel.org/r/20190831180402.10008-1-alexander.sverdlin@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Just define ioremap_nocache to ioremap instead of duplicating the
inline. Also define ioremap_uc in terms of ioremap instead of
using a double indirection.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20190817073253.27819-9-hch@lst.de
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Commit
a90118c445 ("x86/boot: Save fields explicitly, zero out everything else")
now zeroes the secure boot setting information (enabled/disabled/...)
passed by the boot loader or by the kernel's EFI handover mechanism.
The problem manifests itself with signed kernels using the EFI handoff
protocol with grub and the kernel loses the information whether secure
boot is enabled in the firmware, i.e., the log message "Secure boot
enabled" becomes "Secure boot could not be determined".
efi_main() arch/x86/boot/compressed/eboot.c sets this field early but it
is subsequently zeroed by the above referenced commit.
Include boot_params.secure_boot in the preserve field list.
[ bp: restructure commit message and massage. ]
Fixes: a90118c445 ("x86/boot: Save fields explicitly, zero out everything else")
Signed-off-by: John S. Gruber <JohnSGruber@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: stable <stable@vger.kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: x86-ml <x86@kernel.org>
Link: https://lkml.kernel.org/r/CAPotdmSPExAuQcy9iAHqX3js_fc4mMLQOTr5RBGvizyCOPcTQQ@mail.gmail.com
Conflicts:
tools/power/x86/turbostat/turbostat.c
Recent turbostat changes conflicted with a pending rename of x86 model names in tip:x86/cpu,
sort it out.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Move PCI configuration space, MMIO and memory to the KIO range to free
vmalloc area and use static TLB to access them. Move MMIO to the
beginning of KIO and define PCI_IOBASE as XCHAL_KIO_BYPASS_VADDR to
match it. Reduce number of supported PCI buses to 0x3f so that ECAM
window fits into first 64MB of the KIO. Reduce size of the PCI memory
window to 128MB so that it fits into KIO.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Provide a Kconfig choice to select whether only the default ABI, only
call0 ABI or both are supported. The default for XEA2 is windowed, but
it may change for XEA3. Call0 only runs userspace with PS.WOE disabled.
Supporting both windowed and call0 ABIs is tricky, as there's no
indication in the ELF binaries which ABI they use. So it is done by
probing: each process is started with PS.WOE disabled, but the handler
of an illegal instruction exception taken with PS.WOE retries faulting
instruction after enabling PS.WOE. It must happen before any signal is
delivered to the process, otherwise it may be delivered incorrectly.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
PS_WOE_BIT is mainly used to generate PS.WOE mask in the code. Introduce
PS_WOE_MASK macro and use it instead.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Pull x86 fixes from Thomas Gleixner:
"A set of fixes for x86:
- Fix the bogus detection of 32bit user mode for uretprobes which
caused corruption of the user return address resulting in
application crashes. In the uprobes handler in_ia32_syscall() is
obviously always returning false on a 64bit kernel. Use
user_64bit_mode() instead which works correctly.
- Prevent large page splitting when ftrace flips RW/RO on the kernel
text which caused iTLB performance issues. Ftrace wants to be
converted to text_poke() which avoids the problem, but for now
allow large page preservation in the static protections check when
the change request spawns a full large page.
- Prevent arch_dynirq_lower_bound() from returning 0 when the IOAPIC
is configured via device tree. In the device tree case the GSI 1:1
mapping is meaningless therefore the lower bound which protects the
GSI range on ACPI machines is irrelevant. Return the lower bound
which the core hands to the function instead of blindly returning 0
which causes the core to allocate the invalid virtual interupt
number 0 which in turn prevents all drivers from allocating and
requesting an interrupt.
- Remove the bogus initialization of LDR and DFR in the 32bit bigsmp
APIC driver. That uses physical destination mode where LDR/DFR are
ignored, but the initialization and the missing clear of LDR caused
the APIC to be left in a inconsistent state on kexec/reboot.
- Clear LDR when clearing the APIC registers so the APIC is in a well
defined state.
- Initialize variables proper in the find_trampoline_placement()
code.
- Silence GCC( build warning for the real mode part of the build"
* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86/mm/cpa: Prevent large page split when ftrace flips RW on kernel text
x86/build: Add -Wnoaddress-of-packed-member to REALMODE_CFLAGS, to silence GCC9 build warning
x86/boot/compressed/64: Fix missing initialization in find_trampoline_placement()
x86/apic: Include the LDR when clearing out APIC registers
x86/apic: Do not initialize LDR and DFR for bigsmp
uprobes/x86: Fix detection of 32-bit user mode
x86/apic: Fix arch_dynirq_lower_bound() bug for DT enabled machines
Pull perf fixes from Thomas Gleixner:
"Two fixes for perf x86 hardware implementations:
- Restrict the period on Nehalem machines to prevent perf from
hogging the CPU
- Prevent the AMD IBS driver from overwriting the hardwre controlled
and pre-seeded reserved bits (0-6) in the count register which
caused a sample bias for dispatched micro-ops"
* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf/x86/amd/ibs: Fix sample bias for dispatched micro-ops
perf/x86/intel: Restrict period on Nehalem
QCOM_A53PLL and QCOM_CLK_APCS_MSM8916 used to be enabled by default in
drivers/clk/qcom/Kconfig. A recent patch changed that by dropping the
'default ARCH_QCOM' directive.
Add the two options explicitly in the arm64 defconfig, to avoid
functional regressions.
Acked-by: Amit Kucheria <amit.kucheria@linaro.org>
Signed-off-by: Marc Gonzalez <marc.w.gonzalez@free.fr>
[bjorn: Rewrote subject]
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Now that CONFIG_DRM_MSM is no longer default 'y' add it as a module to all
ARCH_QCOM enabled defconfigs to restore the previous expected build
behavior.
I split this off from the original patch to separate out the ARM64 portions.
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <agross@kernel.org>
Now that CONFIG_DRM_MSM is no longer default 'y' add it as a module to all
ARCH_QCOM enabled defconfigs to restore the previous expected build
behavior.
I split this off from the original patch to make this change unique to
the multi_v7_defconfig
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <agross@kernel.org>