Commit graph

1,188,286 commits

Author SHA1 Message Date
Eric Biggers
f45555bf23 fsverity: replace fsverity_hash_page() with fsverity_hash_block()
In preparation for allowing the Merkle tree block size to differ from
PAGE_SIZE, replace fsverity_hash_page() with fsverity_hash_block().  The
new function is similar to the old one, but it operates on the block at
the given offset in the page instead of on the full page.

(For now, all callers still pass a full page.)

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Andrey Albershteyn <aalbersh@redhat.com>
Tested-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Link: https://lore.kernel.org/r/20221223203638.41293-6-ebiggers@kernel.org
2023-01-09 19:06:01 -08:00
Eric Biggers
55eed69cc8 fsverity: use EFBIG for file too large to enable verity
Currently, there is an implementation limit where files can't have more
than 8 Merkle tree levels.  With SHA-256 and 4K blocks, this limit is
never reached, since a file would need to be larger than 2**64 bytes to
need 9 levels.  However, with SHA-512, 9 levels are needed for files
larger than about 1.15 EB, which is possible on btrfs.  Therefore, this
limit technically became reachable when btrfs added fsverity support.

Meanwhile, support for merkle_tree_block_size < PAGE_SIZE will introduce
another implementation limit on file size, resulting from the use of an
in-memory bitmap to track which Merkle tree blocks have been verified.

In any case, currently FS_IOC_ENABLE_VERITY fails with EINVAL when the
file is too large.  This is undocumented, and also ambiguous since
EINVAL can mean other things too.  Let's change the error code to EFBIG,
which is much clearer, and document it.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Andrey Albershteyn <aalbersh@redhat.com>
Tested-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Link: https://lore.kernel.org/r/20221223203638.41293-5-ebiggers@kernel.org
2023-01-09 19:05:59 -08:00
Eric Biggers
579a12f78d fsverity: store log2(digest_size) precomputed
Add log_digestsize to struct merkle_tree_params so that it can be used
in verify.c.  Also save memory by using u8 for all the log_* fields.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Andrey Albershteyn <aalbersh@redhat.com>
Tested-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Link: https://lore.kernel.org/r/20221223203638.41293-4-ebiggers@kernel.org
2023-01-09 19:05:56 -08:00
Eric Biggers
9098f36b73 fsverity: simplify Merkle tree readahead size calculation
First, calculate max_ra_pages more efficiently by using the bio size.

Second, calculate the number of readahead pages from the hash page
index, instead of calculating it ahead of time using the data page
index.  This ends up being a bit simpler, especially since level 0 is
last in the tree, so we can just limit the readahead to the tree size.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Andrey Albershteyn <aalbersh@redhat.com>
Tested-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Link: https://lore.kernel.org/r/20221223203638.41293-3-ebiggers@kernel.org
2023-01-09 19:05:54 -08:00
Eric Biggers
284d5db5f9 fsverity: use unsigned long for level_start
fs/verity/ isn't consistent with whether Merkle tree block indices are
'unsigned long' or 'u64'.  There's no real point to using u64 for them,
though, since (a) a Merkle tree with over ULONG_MAX blocks would only be
needed for a file larger than MAX_LFS_FILESIZE, and (b) for reads, the
status of all Merkle tree blocks has to be tracked in memory.

Therefore, let's make things a bit more efficient on 32-bit systems by
using 'unsigned long[]' for merkle_tree_params::level_start, instead of
'u64[]'.  Also, to be extra safe, explicitly check that there aren't
more than ULONG_MAX Merkle tree blocks.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Andrey Albershteyn <aalbersh@redhat.com>
Tested-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
Link: https://lore.kernel.org/r/20221223203638.41293-2-ebiggers@kernel.org
2023-01-09 19:05:47 -08:00
Zack Rusin
a309c7194e drm/vmwgfx: Remove rcu locks from user resources
User resource lookups used rcu to avoid two extra atomics. Unfortunately
the rcu paths were buggy and it was easy to make the driver crash by
submitting command buffers from two different threads. Because the
lookups never show up in performance profiles replace them with a
regular spin lock which fixes the races in accesses to those shared
resources.

Fixes kernel oops'es in IGT's vmwgfx execution_buffer stress test and
seen crashes with apps using shared resources.

Fixes: e14c02e6b6 ("drm/vmwgfx: Look up objects without taking a reference")
Signed-off-by: Zack Rusin <zackr@vmware.com>
Reviewed-by: Martin Krastev <krastevm@vmware.com>
Reviewed-by: Maaz Mombasawala <mombasawalam@vmware.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221207172907.959037-1-zack@kde.org
2023-01-09 21:15:36 -05:00
Jamie Gloudon
cbdbb58b6c e1000e: Enable Link Partner Advertised Support
This enables link partner advertised support to show link modes and
pause frame use.

Signed-off-by: Jamie Gloudon <jamie.gloudon@gmx.fr>
Tested-by: Naama Meir <naamax.meir@linux.intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20230103230653.1102544-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-01-09 17:39:43 -08:00
Rob Clark
5253125831 drm/virtio: Fix GEM handle creation UAF
Userspace can guess the handle value and try to race GEM object creation
with handle close, resulting in a use-after-free if we dereference the
object after dropping the handle's reference.  For that reason, dropping
the handle's reference must be done *after* we are done dereferencing
the object.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Fixes: 62fb7a5e10 ("virtio-gpu: add 3d/virgl support")
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221216233355.542197-2-robdclark@gmail.com
2023-01-10 02:17:50 +03:00
Linus Torvalds
5a41237ad1 gcc: disable -Warray-bounds for gcc-11 too
We had already disabled this warning for gcc-12 due to bugs in the value
range analysis, but it turns out we end up having some similar problems
with gcc-11.3 too, so let's disable it there too.

Older gcc versions end up being increasingly less relevant, and
hopefully clang and newer version of gcc (ie gcc-13) end up working
reliably enough that we still get the build coverage even when we
disable this for some versions.

Link: https://lore.kernel.org/all/20221227002941.GA2691687@roeck-us.net/
Link: https://lore.kernel.org/all/D8BDBF66-E44C-45D4-9758-BAAA4F0C1998@kernel.org/
Cc: Kees Cook <kees@kernel.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2023-01-09 17:04:49 -06:00
Jens Axboe
febb985c06 io_uring/poll: add hash if ready poll request can't complete inline
If we don't, then we may lose access to it completely, leading to a
request leak. This will eventually stall the ring exit process as
well.

Cc: stable@vger.kernel.org
Fixes: 49f1c68e04 ("io_uring: optimise submission side poll_refs")
Reported-and-tested-by: syzbot+6c95df01470a47fc3af4@syzkaller.appspotmail.com
Link: https://lore.kernel.org/io-uring/0000000000009f829805f1ce87b2@google.com/
Suggested-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2023-01-09 15:46:57 -07:00
Arnd Bergmann
721c46bfc5 Merge branch 'omap/omap2-cleanup' of https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc into arm/soc
While going through the removal of board files on some other
platforms, I noticed a bit of outdated code on omap2+ that
was left behind after the platform became DT only.

This is a separate branch, to avoid conflicts with other omap2
changes.

* 'omap/omap2-cleanup' of https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
  ARM: omap2: make functions static
  ARM: omap2: remove unused omap2_pm_init
  ARM: omap2: remove unused declarations
  ARM: omap2: remove unused functions
  ARM: omap2: smartreflex: remove on_init control
  ARM: omap2: remove APLL control
  ARM: omap2: simplify clock2xxx header
  ARM: omap2: remove unused omap_hwmod_reset.c
  ARM: omap2: remove unused headers
  ARM: omap2: remove unused USB code
  ARM: remove CONFIG_UNUSED_BOARD_FILES
2023-01-09 23:33:57 +01:00
Alexandre Belloni
daec8b54e9
ARM: footbridge: drop unnecessary inclusion
isa-rtc.c doesn't use any definition from bcd.h, remove its inclusion

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20221212135953.212303-1-alexandre.belloni@bootlin.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-01-09 23:18:16 +01:00
Arnd Bergmann
33abcaef98 i.MX fixes for 6.2:
- Fix i.MX8MP DT for missing GPC Interrupt, power-domain typo and USB
   clock error.
 - Fix mach-imx cpu code to add missing of_node_put() call.
 - A couple of verdin-imx8mm DT fixes for audio playback support.
 - Fix pca9547 i2c-mux node name for i.MX and Vybrid device trees.
 - Fix an imx93-11x11-evk uSDHC pad setting problem that causes Micron
   eMMC CMD8 CRC error in HS400ES/HS400 mode.
 - A couple of imx8mp-blk-ctrl driver fixes from Lucas Stach, enabling
   pixclk with HDMI_TX_PHY PD, dropping power device name setting.
 - Fix the error check for of_clk_get_by_name() in soc-imx8m driver.
 - Other various DT fixes and cleanups.
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmOy2WEUHHNoYXduZ3Vv
 QGtlcm5lbC5vcmcACgkQUFdYWoewfM6CXQgAs7GUMgFP9S5ddyCRgbjiCGHNrWMi
 fTDdL0pCrWsfZ/ny9HiezEJHtQo4wpPhdlEI5hQBNgH4SbxWk5qbwr11DH/5E/BH
 MM0oujgINHrLCooZQEsCsVRdIhu6ipk6I+MY1Pa0s8WZ2NyqMGZp47Xz0qy4KElz
 +SyVwgq1GJuyHYtkPwqK2GVdC6brC5ld5mYAQZY/QcBCelUSEBSCOwexdxujLX43
 HMMSd6k0NmNmSRrpJ/0HqftS3DkfPHngTMp9LBrEMQzO+42xsDlaM6MrCjzmpdjY
 lppPIlUR31SpykwT+99lMMA/6oiSZ38ugjSEUmWx+/XOI+Vpf+pH0XKUQQ==
 =hYVD
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmO8kkYACgkQmmx57+YA
 GNkJyA/9GAcIgfvLiqTGXY9vAtCqI0ARPHOv4UMXgSKNQ9XXMJrKTzgpOVOmfyif
 woEzb4mGqQtwx9mmKGkjtfVG+WTTjDYGtbIHEHsBe/NRpLnO+eyesUATFoPVNLqe
 b4G29jFofYlZ/Ho2rTXP6GteKudLOMWZ1B00DrsVNfYQ8q1GDX4BQXWiqBaJoHaz
 s7xVDn0xTd55ZD4QmqamehRAAQ+OfeGnBXYYPZ/4U2pry9RXGYtHEBKvgSSd5m7A
 hsfiFZhaikcMZp0xImRPBm8ZCMWOiJv7AyL9PgB1HVplpvuR89YGZupIhJOOqDU3
 mPpK2DcU/P0HHUWG+w/9n9fpo/hQcVhK3ZN5Roc+Td0bYdcjpNDYgF9QVSDpixmO
 AG5t0GEOHmKL3lxtXWGS3C/86Vw9EIuId/8cHH9H6fJLzg/+r4YQPM4hNxblwEPe
 /gR/2SBq00ieup1Cu3yoQzj1kgcwEnaWVto/GW6WUWdmq9MUpGK453w8Z35cr7yN
 yKinYHeyRkwH0B4Gp7Kpzale0i6j0N5OfK/mDGwQqIyaOEwuK5rXy0xtQtWMWODC
 SFcnUdz/is5c3u8aHjQtGhZ+1rjN5nJJkWS3l3F5qVPzzcxZxlmuV7PJQZlKpRTn
 AyZDlk9DhBbjnLdtDJ1d1wSZ8u49q8NPTxwytu03LuhVaFqbo/k=
 =htS4
 -----END PGP SIGNATURE-----

Merge tag 'imx-fixes-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes

i.MX fixes for 6.2:

- Fix i.MX8MP DT for missing GPC Interrupt, power-domain typo and USB
  clock error.
- Fix mach-imx cpu code to add missing of_node_put() call.
- A couple of verdin-imx8mm DT fixes for audio playback support.
- Fix pca9547 i2c-mux node name for i.MX and Vybrid device trees.
- Fix an imx93-11x11-evk uSDHC pad setting problem that causes Micron
  eMMC CMD8 CRC error in HS400ES/HS400 mode.
- A couple of imx8mp-blk-ctrl driver fixes from Lucas Stach, enabling
  pixclk with HDMI_TX_PHY PD, dropping power device name setting.
- Fix the error check for of_clk_get_by_name() in soc-imx8m driver.
- Other various DT fixes and cleanups.

* tag 'imx-fixes-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (22 commits)
  soc: imx8m: Fix incorrect check for of_clk_get_by_name()
  arm64: dts: imx8mm-venice-gw7901: fix USB2 controller OC polarity
  arm64: dts: imx8mp-evk: pcie0-refclk cosmetic cleanup
  arm64: dts: imx8mp: Fix power-domain typo
  arm64: dts: imx8mp: Fix missing GPC Interrupt
  soc: imx: imx8mp-blk-ctrl: don't set power device name
  arm64: dts: imx8mm: Drop xtal clock specifier from eDM SBC
  ARM: imx: add missing of_node_put()
  arm64: dts: imx93-11x11-evk: correct clock and strobe pad setting
  arm64: dts: verdin-imx8mm: fix dev board audio playback
  arm64: dts: imx8mq-thor96: fix no-mmc property for SDHCI
  arm64: dts: imx8mm-beacon: Fix ecspi2 pinmux
  arm64: dts: freescale: Fix pca954x i2c-mux node names
  ARM: dts: vf610: Fix pca9548 i2c-mux node names
  ARM: dts: imx: Fix pca9547 i2c-mux node name
  arm64: dts: verdin-imx8mm: fix dahlia audio playback
  ARM: dts: imx6qdl-gw560x: Remove incorrect 'uart-has-rtscts'
  ARM: dts: imx7d-pico: Use 'clock-frequency'
  ARM: dts: imx6ul-pico-dwarf: Use 'clock-frequency'
  arm64: dts: imx8mp-phycore-som: Remove invalid PMIC property
  ...

Link: https://lore.kernel.org/r/20230102132016.GA10699@T480
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-01-09 23:16:38 +01:00
Arnd Bergmann
97bcdf24e0 Reset controller fixes for v6.2
Avoid a build error by disabling the invalid combination of building
 reset-ti-sci built-in but ti-sci as a module.
 Fix a possible NULL pointer dereference in reset-uniphier-glue in case
 platform_get_resource() fails.
 -----BEGIN PGP SIGNATURE-----
 
 iI0EABYIADUWIQRRO6F6WdpH1R0vGibVhaclGDdiwAUCY7VMThcccC56YWJlbEBw
 ZW5ndXRyb25peC5kZQAKCRDVhaclGDdiwDBIAQCh6Cc1gJtYi08WbF3nGB3ojKAz
 +ciz6F8gBhXMphCahAEAoFpMjiIjkxvN5e1E+Rvxix5DzUJoteVtE1fIOtrNjAg=
 =PQAz
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmO8kikACgkQmmx57+YA
 GNktLQ//SdDorslDy/GfR46tZddaruMo3AXQ84zOjVz0cQOH613nTE5P487b8+y+
 h+MIW6KJQNgwLi7zLAF0SVZjV50LkF7ic52IyZlaVbri6sMsoVEm0jIp8UWVy5bU
 JV23VWd4kpgoNvK6b0QlhrytU3AVV1oZfbK+PJoINMPZUM76qwKijASH0778c7AF
 jWrPQE3jCQ4UqudfBq8PAcu/j5ALp4GKkWSIiqFlesho/lCG+Ycto0tTPUfPDCFL
 lmv2sdiUIv5X5Y/MkB99DH/nTY81LlmIs3KHD22QYMDrqE6R2vX3OiQ/bfKcCvPg
 KAA96+XLXuWUZAc3ldJIDAZ++fsEFvyPLAg74uFZVgqcUEFYoh07WOVJpAbTYOSN
 kJ49k+LtI/58iOoekjj+/95/pD3lg5HE87N2XIw199AhA8fIW+oKIrq7aYlECHjS
 FN7871/Jtt45QACYCmtWM0YmDmRI1gaGLbXRdvEtyK4U5h4nh8HRkxdVk+DcB83W
 2glSqpgIPnKtqgDSg/14dv4p5BaLd5v8Cm6GFavfAGBJSrHBr2ZFguV74i9ixVUJ
 AoXFlguO0G1OrYsfppW7bF1ThgebBV88F4ESxeLyWnP4VOhnJdo8Yg1i/2FQyN+q
 iPIvlDOpBFuOyMqIZhYeSe/hCroZ3OWA2xhv2B32g/m1HK/HCIk=
 =Q4/c
 -----END PGP SIGNATURE-----

Merge tag 'reset-fixes-for-v6.2' of git://git.pengutronix.de/pza/linux into arm/fixes

Reset controller fixes for v6.2

Avoid a build error by disabling the invalid combination of building
reset-ti-sci built-in but ti-sci as a module.
Fix a possible NULL pointer dereference in reset-uniphier-glue in case
platform_get_resource() fails.

* tag 'reset-fixes-for-v6.2' of git://git.pengutronix.de/pza/linux:
  reset: uniphier-glue: Fix possible null-ptr-deref
  reset: ti-sci: honor TI_SCI_PROTOCOL setting when not COMPILE_TEST

Link: https://lore.kernel.org/r/20230104095855.3809733-1-p.zabel@pengutronix.de
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-01-09 23:16:09 +01:00
Arnd Bergmann
13d159553e Amlogic fixes for v6.2-rc:
- Revert "arm64: dts: meson-sm1-odroid-hc4: disable unused USB PHY0" which breaks whole USB on Odroid-HC4
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmO31x0ACgkQd9zb2sjI
 SdEODRAAmQcFyi9CKvUBmeUoPviDtsFZdUsQDjfmwCPOFMDWyjWY0ZH1045arM5L
 R6lUHpFs6w4TwtRg7br8e9Vz9SJv/0eValny1zcZN18hIUTCN2CeamNTPGkRyl/F
 KbfTLD3mlJm2weXVy5sf4ffhOfHhmRWBsQLmPCLMQ9jPadi4qoqExDYkbBsUp66e
 pryVkFEWuUNrHq0uNLLjZkqPbFz1ZgHGyzAqGvGo68wm7Z5c+1VaCME+9mrb1rrl
 02a7DKKHy5/1LHaRVH8GskvS4hS1x4SXe71lHjvTHUVb3zOAwPme4zapjWvBIG0N
 uBHY53iCbL10eulVth/PgGCNmlk1eAXK4XgyC5zPnp22gCiRepUbEvNk8C1ESlWD
 So27V51oRkWcbX2zBKXu9qajmIrtU0uiOvO9HmGmrxuAt/mKS3mWY/EV/S20x2uW
 d0sXQGa0svQ16kxH2rJTEciAVmKvU2YpkpBdPpFP4xdg8qa+bB0CNArJH/hiwfGS
 3e4dEQMfaHNmwWQ4lsWZ7Nrc9cJrxkg68lpOZH9scYpVherr+rmTKRHXJtLC7Kz9
 LRf6JzlmTKPSJL67eGKkldghD7VqwLLWKHtXnqQx8avf2UNp/c9o0uwnzf0zJ5DN
 NqwSyeYmDPEsX8O2cgenoEFKy7Pv/O7lhKXZg0ifWlQAUgvyRbY=
 =+9Fw
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmO8khEACgkQmmx57+YA
 GNlfJw//TZ8I+o1gB+XmahO6bicibZs+WxVtOsWZIKMEvlZcK4ln/K3cImQBx1Uv
 ZYXBo2pnUqDPxpFsnYWvqFUq1h1Eo4T2+sh7pML0nfhJgbmNKjmL1F7u/QE4ge8k
 bttUo1EKFcNIRJZYxB9rrzfykCUvtS888FCcadhsTMsM5xQbjo7RuTKP+hkjVpFD
 6EmooAJd4codyjaiqgTCMHj8/CZqHTzuf6y1aDj/z2Q78Pm5rPSLNKP4p4SP4fvY
 8sYholtthvGnwVIv3pO9SvBSEywWiNSRZurqzx2Itek0hhcX3m8IgGbfANJTUdfz
 e6WBdsqCo5Y3ap9q9WHRB8rI2eJ4TcPiDWP49VzfNtR0atg9WuNIGV9c6hOIQOgS
 eRdtw01oWaFfEdmnvpQw0FYC9HZ4yciJwaVrxIMPV9XpMO7OfKIAmwTKGdC155Av
 Hlnlxstc/VwdSijVdcYE7JjTLLzGjWmAq/O9Rzj3kw96m421N4QZ8vWNEJwrZ2a2
 iHST33cAHDTVAbbf0GjndJ5ec2Bs6tiRS7aLAfs2yI/COKX4FhxsN76/V+EMlp5k
 7zBaprJ1HL+/NzKbYodzRIqbzs+OGBSanHitVDz6Zt7GwbWy6kcci/W25kbGH63v
 2J40SJSxTghnFZ/+TUtOs8UGZEL8O2zSTjxxmFfsMiPOgwW7oWM=
 =n9F8
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-fixes-v6.2-rc' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into arm/fixes

Amlogic fixes for v6.2-rc:
- Revert "arm64: dts: meson-sm1-odroid-hc4: disable unused USB PHY0" which breaks whole USB on Odroid-HC4

* tag 'amlogic-fixes-v6.2-rc' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux:
  Revert "arm64: dts: meson-sm1-odroid-hc4: disable unused USB PHY0"

Link: https://lore.kernel.org/r/7915c3f8-57bc-25e2-0314-c78af7a79d6a@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-01-09 23:15:45 +01:00
Arnd Bergmann
a316877372 Arm SCMI fixes for v6.2
Few fixes addressing:
 1. Possible compromise with the shorter message size from a misbheaving
    SCMI platform firmware. The shmem accesses are now hardened to handle
    the same in fetch_notification and fetch_response.
 
 2. Possible unsafe locking scenario which is solved by calling
    virtio_break_device() before getting hold of vioch->lock.
 
 3. Possible stale error status reported from a previous message being
    used again as it is not cleared.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmO3s5sACgkQAEG6vDF+
 4phoag/+KShujYrx9bTvpZc+6f6AbDaUHVJmgQZko6Hlw2CdjQUbL0NU+hrwglIb
 InsaRdMGGFBGCv1XsXFCHlw9N8hO47r8z+HxWAXW+jvW99ywPL9lMFamtwTj65Ib
 NR0Qm1jGNRrWwgWaZxcjlz2gVTurHZN3ZGacIzxl0TAakx4Tlfh/8b/8RGegJ9L4
 sVkJiXaUoEcPLQ6uZqrEqZIte737cUILw5HBaCRrUhVdYH7goAYSUbxnWrHPZLXG
 lYzEFEU6ayy2/iHaJEBekOg4xfD0QKBjJrgHz5IOVhFY04oDGIphEELDEW3OK62K
 FYXhNG9lrbhgwyYtFmh1HIo7Sf6bkgzkVRNf0pl88hhURALEgVRsxlOvGCno9//Q
 FyOS2xwlL0Y2xT8ka8RAkT21o6pTttKM1eJ3kdjabOvQcvqoTo/WzP2Ju6ZoXzur
 Nedj0i3gh6JKuU1fmmVJuQ753lnNzm73i813uAzsCkAgLpX+kDYgHuyNldK3dLv2
 1WWkqa6GZjxOAfo/dnM/cYV6Shoy6++TenRpQH8wENRj/1254UTafQz6i79Ejmdu
 cSgGrrsYU0UxeBbNeow6z9xEK9SEefEaZUgD+hlFMhepux57mxYNrRpkLWKAZ/kC
 Ei46ZacWQpQe/sWcX09kIYBe6P9Wab/UObdY/vGciDalTFMMCV0=
 =f+vJ
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmO8ke0ACgkQmmx57+YA
 GNk7fhAAphlezeNNhwJyQ68ruZhf5z6ilOBvLFKr5kOVdDeQ7clX6ChN00NX00lV
 7VWB+rsb0By1vPm4QMVBfeyGe4bFYic2YiTPLMjbV2MUt1lTZrHgWfazuzBtKO+y
 hyPmaOA3WuDrdZSCSkUWLJegV6Jzj3b2TKlYW/gdkvcTE2zcGNjTVh3WYjgEmPKl
 FwJ4ozb3iDUviXvfOz+GaqX6w7LicuHytgc3OOtDoiAAgJN26duzY5WIKLG3COcu
 5MaocOziM2QXLV+OJt2K9L+jgskuLhbTGUZKKPgc3MI0avts4IY8I3dvZogjzOys
 fsZCBKQJK4P29lgv1EOOsSot0O64VLlZA4xFLvyUCubRAY3VUT4NvOTmofDWKX0A
 Lq9YolinwYyRlga7R/n9pluzwqDv6PZH8cYndNiz1uh7UztLLxS5TN6AEwRHKYf9
 qDPp58goXHow9+cw9iY9j6CLYAb1lxiyO4e2OpkqbSOp+qS/H8rLemUiQVvoKoUy
 cM6pB9cNGAwbmafPhYXrhmlPbKYVaW6rE9g4y5BPCjqoNT9bUVVu4LHGv7l79tjF
 +mUZFgZ95sVO8EBasd3B2bhEa8ZijwpOqrr9reMCBimwqq2n6aagVl98u62lbuam
 oiKBa6yAjokoCIAd4C9/bqZvHUmLiYuqfCAaYohz3xTl+ActbQ0=
 =Th/N
 -----END PGP SIGNATURE-----

Merge tag 'scmi-fixes-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/fixes

Arm SCMI fixes for v6.2

Few fixes addressing:
1. Possible compromise with the shorter message size from a misbheaving
   SCMI platform firmware. The shmem accesses are now hardened to handle
   the same in fetch_notification and fetch_response.

2. Possible unsafe locking scenario which is solved by calling
   virtio_break_device() before getting hold of vioch->lock.

3. Possible stale error status reported from a previous message being
   used again as it is not cleared.

* tag 'scmi-fixes-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  firmware: arm_scmi: Fix virtio channels cleanup on shutdown
  firmware: arm_scmi: Harden shared memory access in fetch_notification
  firmware: arm_scmi: Harden shared memory access in fetch_response
  firmware: arm_scmi: Clear stale xfer->hdr.status

Link: https://lore.kernel.org/r/20230106093909.652657-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-01-09 23:15:08 +01:00
Arnd Bergmann
dc43354cb7 Memory controller drivers - fixes for v6.2
Broken in v6.2:
 1. OMAP GPMC: do not fail if "gpmc,wait-pin" optional property
    (introduced for v6.2) is missing.
 
 Broken earlier:
 1. Tegra MC: Drop SID override programming as it is handled by
    bootloader and doing it in the kernel can cause unexpected results.
 2. Atmel SDRAMC, MVEBU devbus: Add missing clock unprepare/disable in
    exit and error paths.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmO8LEcQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD14SuD/wKnO0cjQ183vLQ9HQghpRmyiQ1EMDGcWyY
 zBh4wB9bOmA33leshGDCxYMyqTzgyZHW6iH4fKcGKmPmOnekRVnVUqEAdLq2Yi7S
 DzNpbQXWjPx1eEZtYTKKLny/GGa03zk9X8L0784llKsujX2slTpVgDav9z+ChdUj
 x+oIP8tk2n1i9gF6cDaAT/yDJMSGhj8BLoonZNuNj5PpFDWMJjAVjl+7jtF5w1ys
 CFYLFcOiGjybLOwbRLisz8lVU4H7W6ydVmN89I4d+8ca/ba0YkPnHJMQ7kXPYZnM
 XXRYhTpL9t1hTSPGc51A4+Pm+375wslMyjUPLka6MsotEXIaYW8xTT/Tzq0M4xHG
 7iB5qffqbu+p57sf2YI7EbQkqm2NDGdRj2dVCJ7jISGTz/2knajrVHwwC0QV8h1/
 iZbhLn5zEnJVmZovZIq6VddCskbDwHxvYDsKkYytyZX21bo3d3wXkg2Dva2c52v1
 z8zAY22+kXVfytr7Tb3Sez9A6XnaIVEd++nWHeFJCSSd106R8u3IZo/psqDHgEMc
 KlYneKWjGCZxLM5fPoYqNHtWMblYdRKrKvrgftr56NttTB15jEAB3HJ9NlIbZbAn
 BopYMvAfr4PpOda2iy8+QsKKEHkeiowkah4QB0kCUiNDnPI+tyg8sKATm4r+u6oS
 AL+NxzKD3Q==
 =74mf
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmO8kbIACgkQmmx57+YA
 GNmxow/+NzksoLlz2LFKlFHAJQGdCpAuuW5YXSRUt9We5qlkx+HMUm912KxObzHA
 8m/9d9Sshv8p9dc8YaVWxsPaH3Bq9dcSJIgAEBYyNePkfC9D44KMYzPqvhk12/Tt
 IJKkABwyTYDtBZaaqOYmaORqgywEC24lDJ0McQGX/cEWZXnbg/9dgmRkyr8oD9B+
 iCr3N2egOD9BUQF3PHKTmrl4raVzu8R3nccwVBnSCpyu3mGpxZXcUje8Oj9hLqjR
 RP5/W7auVuYfyOL6AZgVpZUxxfgU4xgFwbsU8Bh9sCKUZm81CqwTAOG9h2evSFTq
 EGJfWpXEoGRSQIOC3VlZs6maMQ8xh3pgl21ee6El6t7t57/CwknOx/2Aty/DQT13
 A6i32ud5wDzpD+tqVFIFCum5yWTolMzJ0wfhBhzjZABkRoY/OZ30IE8HXzulWeGX
 HJ4yJdfqNMniQe4dhOn/e2k2VFFyfKY5LHvFkjVetnPAX7qAilzyt7B7NPkpvwp3
 TqzvuCCJwdvp0aNY4SzvYFIRb2Co4ekmIHEH1XT8lmf83bHK8NiaoiYxj37CaIsY
 UZ+lL7444UNkajXw1HqQZnLYQ/+AuzNNCtC5MY8ZkbYDt+/3nVMy/onND5I+/K3l
 RDTEAJcbpacnnI2bMRaOcvVOjxOTJZp6b1vrs47sUFhs/3eoouw=
 =Dy7f
 -----END PGP SIGNATURE-----

Merge tag 'memory-controller-drv-fixes-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into arm/fixes

Memory controller drivers - fixes for v6.2

Broken in v6.2:
1. OMAP GPMC: do not fail if "gpmc,wait-pin" optional property
   (introduced for v6.2) is missing.

Broken earlier:
1. Tegra MC: Drop SID override programming as it is handled by
   bootloader and doing it in the kernel can cause unexpected results.
2. Atmel SDRAMC, MVEBU devbus: Add missing clock unprepare/disable in
   exit and error paths.

* tag 'memory-controller-drv-fixes-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl:
  memory: mvebu-devbus: Fix missing clk_disable_unprepare in mvebu_devbus_probe()
  memory: atmel-sdramc: Fix missing clk_disable_unprepare in atmel_ramc_probe()
  memory: tegra: Remove clients SID override programming
  memory: omap-gpmc: fix wait pin validation

Link: https://lore.kernel.org/r/20230109150322.329614-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-01-09 23:14:09 +01:00
Uwe Kleine-König
4cd0ca1fe9 rtc: ds1307: Convert to i2c's .probe_new()
.probe_new() doesn't get the i2c_device_id * parameter, so determine
that explicitly in the probe function.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20221118224540.619276-561-uwe@kleine-koenig.org
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-01-09 23:03:56 +01:00
Jiasheng Jiang
40543b3d9d ice: Add check for kzalloc
Add the check for the return value of kzalloc in order to avoid
NULL pointer dereference.
Moreover, use the goto-label to share the clean code.

Fixes: d6b98c8d24 ("ice: add write functionality for GNSS TTY")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2023-01-09 14:02:39 -08:00
Yuan Can
f58985620f ice: Fix potential memory leak in ice_gnss_tty_write()
The ice_gnss_tty_write() return directly if the write_buf alloc failed,
leaking the cmd_buf.

Fix by free cmd_buf if write_buf alloc failed.

Fixes: d6b98c8d24 ("ice: add write functionality for GNSS TTY")
Signed-off-by: Yuan Can <yuancan@huawei.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Tested-by: Gurucharan G <gurucharanx.g@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2023-01-09 14:02:39 -08:00
Liwei Song
4773fadedc drm/radeon: free iio for atombios when driver shutdown
Fix below kmemleak when unload radeon driver:

unreferenced object 0xffff9f8608ede200 (size 512):
  comm "systemd-udevd", pid 326, jiffies 4294682822 (age 716.338s)
  hex dump (first 32 bytes):
    00 00 00 00 c4 aa ec aa 14 ab 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  backtrace:
    [<0000000062fadebe>] kmem_cache_alloc_trace+0x2f1/0x500
    [<00000000b6883cea>] atom_parse+0x117/0x230 [radeon]
    [<00000000158c23fd>] radeon_atombios_init+0xab/0x170 [radeon]
    [<00000000683f672e>] si_init+0x57/0x750 [radeon]
    [<00000000566cc31f>] radeon_device_init+0x559/0x9c0 [radeon]
    [<0000000046efabb3>] radeon_driver_load_kms+0xc1/0x1a0 [radeon]
    [<00000000b5155064>] drm_dev_register+0xdd/0x1d0
    [<0000000045fec835>] radeon_pci_probe+0xbd/0x100 [radeon]
    [<00000000e69ecca3>] pci_device_probe+0xe1/0x160
    [<0000000019484b76>] really_probe.part.0+0xc1/0x2c0
    [<000000003f2649da>] __driver_probe_device+0x96/0x130
    [<00000000231c5bb1>] driver_probe_device+0x24/0xf0
    [<0000000000a42377>] __driver_attach+0x77/0x190
    [<00000000d7574da6>] bus_for_each_dev+0x7f/0xd0
    [<00000000633166d2>] driver_attach+0x1e/0x30
    [<00000000313b05b8>] bus_add_driver+0x12c/0x1e0

iio was allocated in atom_index_iio() called by atom_parse(),
but it doesn't got released when the dirver is shutdown.
Fix this kmemleak by free it in radeon_atombios_fini().

Signed-off-by: Liwei Song <liwei.song@windriver.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:19 -05:00
Yang Li
b8743f5dcc drm/amdgpu: clean up some inconsistent indentings
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c:65 amdgpu_gem_fault() warn: inconsistent indenting

Link: https://bugzilla.openanolis.cn/show_bug.cgi?id=3639
Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Mario Limonciello
e045aec89d drm/amd: Load GFX11 microcode during early_init
If GFX11 microcode is required but not available during early init, the
firmware framebuffer will have already been released and the screen will
freeze.

Move the request for GFX11 microcode into the early_init phase
so that if it's not available, driver init will fail.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Mario Limonciello
c88135c089 drm/amd: Use amdgpu_ucode_* helpers for GFX11
The `amdgpu_ucode_request` helper will ensure that the return code for
missing firmware is -ENODEV so that early_init can fail.

The `amdgpu_ucode_release` helper will provide symmetery on unload.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Mario Limonciello
9931b67690 drm/amd: Load GFX10 microcode during early_init
Simplifies the code so that GFX10 will get the firmware
name from `amdgpu_ucode_ip_version_decode` and then use this filename
to load microcode as part of the early_init process.

Any failures will cause the driver to fail to probe before the firmware
framebuffer has been removed.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Mario Limonciello
3da9b71563 drm/amd: Use amdgpu_ucode_* helpers for GFX10
The `amdgpu_ucode_request` helper will ensure that the return code for
missing firmware is -ENODEV so that early_init can fail.

The `amdgpu_ucode_release` helper is for symmetry on unload.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Mario Limonciello
1c21885ec1 drm/amd: Load GFX9 microcode during early_init
If GFX9 microcode is required but not available during early init, the
firmware framebuffer will have already been released and the screen will
freeze.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Mario Limonciello
ec787deb2d drm/amd: Use amdgpu_ucode_* helpers for GFX9
The `amdgpu_ucode_request` helper will ensure that the return code for
missing firmware is -ENODEV so that early_init can fail.

The `amdgpu_ucode_release` helper will provide symmetry on unload.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Mario Limonciello
e78105c8c4 drm/amd: Remove superfluous assignment for adev->mes.adev
`amdgpu_mes_init` already sets `adev->mes.adev`, so there is no need
to also set it in the IP specific versions.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Mario Limonciello
11e0b0067e drm/amd: Use amdgpu_ucode_* helpers for MES
The `amdgpu_ucode_request` helper will ensure that the return code for
missing firmware is -ENODEV so that early_init can fail.

The `amdgpu_ucode_release` helper provides symmetry for releasing firmware.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Mario Limonciello
cc42e76e7d drm/amd: Load MES microcode during early_init
Add an early_init phase to MES for fetching and validating microcode
from the filesystem.

If MES microcode is required but not available during early init, the
firmware framebuffer will have already been released and the screen will
freeze.

Move the request for MES microcode into the early_init phase
so that if it's not available, early_init will fail.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Yang Li
0b8f42ab22 drm/amd/display: Remove unneeded semicolon
./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c:7431:3-4: Unneeded semicolon
./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c:7485:4-5: Unneeded semicolon
./drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c:7489:3-4: Unneeded semicolon

Link: https://bugzilla.openanolis.cn/show_bug.cgi?id=3635
Reported-by: Abaci Robot <abaci@linux.alibaba.com>
Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Yi Yang
b95cb0d852 drm/amd/display: Remove redundant assignment to variable dc
Smatch report warning as follows:

Line 53679: drivers/gpu/drm/amd/display/dc/core/dc_stream.c:402
dc_stream_set_cursor_position() warn: variable dereferenced before
check 'stream'

The value of 'dc' has been assigned after check whether 'stream' is
NULL. Fix it by remove redundant assignment.

Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Yi Yang <yiyang13@huawei.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Hamza Mahfooz
13b90cf900 drm/amd/display: fix PSR-SU/DSC interoperability support
Currently, there are issues with enabling PSR-SU + DSC. This stems from
the fact that DSC imposes a slice height on transmitted video data and
we are not conforming to that slice height in PSR-SU regions. So, pass
slice_height into su_y_granularity to feed the DSC slice height into
PSR-SU code.

Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Mario Limonciello
69939009bd drm/amd: Load VCN microcode during early_init
Simplifies the code so that all VCN versions will get the firmware
name from `amdgpu_ucode_ip_version_decode` and then use this filename
to load microcode as part of the early_init process.

Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:18 -05:00
Mario Limonciello
33efaf829d drm/amd: Use amdgpu_ucode_* helpers for VCN
The `amdgpu_ucode_request` helper will ensure that the return code for
missing firmware is -ENODEV so that early_init can fail.

The `amdgpu_ucode_release` helper is for symmetry.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:17 -05:00
Mario Limonciello
6675402a47 drm/amd: Make SDMA firmware load failures less noisy.
When firmware is missing we get failures at every step.
```
[    3.855086] amdgpu 0000:04:00.0: Direct firmware load for amdgpu/green_sardine_sdma.bin failed with error -2
[    3.855087] [drm:amdgpu_sdma_init_microcode [amdgpu]] *ERROR* SDMA: Failed to init firmware "amdgpu/green_sardine_sdma.bin"
[    3.855398] [drm:sdma_v4_0_early_init [amdgpu]] *ERROR* Failed to load sdma firmware!
```
Realistically we don't need all of these, a user can tell from the first one
that request_firmware emitted what happened. Drop the others.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:17 -05:00
Mario Limonciello
1336b4e72c drm/amd: Convert SDMA to use amdgpu_ucode_ip_version_decode
Simplifies the code so that all SDMA versions will get the firmware
name from `amdgpu_ucode_ip_version_decode`.

v2: squash in fix from Srinivasan

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:17 -05:00
Mario Limonciello
e43229824d drm/amd: Use amdgpu_ucode_request helper for SDMA
The `amdgpu_ucode_request` helper will ensure that the return code for
missing firmware is -ENODEV so that early_init can fail.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 17:02:09 -05:00
YiPeng Chai
99f1a36c90 drm/amdgpu: Fixed bug on error when unloading amdgpu
Fixed bug on error when unloading amdgpu.

The error message is as follows:
[  377.706202] kernel BUG at drivers/gpu/drm/drm_buddy.c:278!
[  377.706215] invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
[  377.706222] CPU: 4 PID: 8610 Comm: modprobe Tainted: G          IOE      6.0.0-thomas #1
[  377.706231] Hardware name: ASUS System Product Name/PRIME Z390-A, BIOS 2004 11/02/2021
[  377.706238] RIP: 0010:drm_buddy_free_block+0x26/0x30 [drm_buddy]
[  377.706264] Code: 00 00 00 90 0f 1f 44 00 00 48 8b 0e 89 c8 25 00 0c 00 00 3d 00 04 00 00 75 10 48 8b 47 18 48 d3 e0 48 01 47 28 e9 fa fe ff ff <0f> 0b 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 41 54 55 48 89 f5 53
[  377.706282] RSP: 0018:ffffad2dc4683cb8 EFLAGS: 00010287
[  377.706289] RAX: 0000000000000000 RBX: ffff8b1743bd5138 RCX: 0000000000000000
[  377.706297] RDX: ffff8b1743bd5160 RSI: ffff8b1743bd5c78 RDI: ffff8b16d1b25f70
[  377.706304] RBP: ffff8b1743bd59e0 R08: 0000000000000001 R09: 0000000000000001
[  377.706311] R10: ffff8b16c8572400 R11: ffffad2dc4683cf0 R12: ffff8b16d1b25f70
[  377.706318] R13: ffff8b16d1b25fd0 R14: ffff8b1743bd59c0 R15: ffff8b16d1b25f70
[  377.706325] FS:  00007fec56c72c40(0000) GS:ffff8b1836500000(0000) knlGS:0000000000000000
[  377.706334] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  377.706340] CR2: 00007f9b88c1ba50 CR3: 0000000110450004 CR4: 00000000003706e0
[  377.706347] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  377.706354] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  377.706361] Call Trace:
[  377.706365]  <TASK>
[  377.706369]  drm_buddy_free_list+0x2a/0x60 [drm_buddy]
[  377.706376]  amdgpu_vram_mgr_fini+0xea/0x180 [amdgpu]
[  377.706572]  amdgpu_ttm_fini+0x12e/0x1a0 [amdgpu]
[  377.706650]  amdgpu_bo_fini+0x22/0x90 [amdgpu]
[  377.706727]  gmc_v11_0_sw_fini+0x26/0x30 [amdgpu]
[  377.706821]  amdgpu_device_fini_sw+0xa1/0x3c0 [amdgpu]
[  377.706897]  amdgpu_driver_release_kms+0x12/0x30 [amdgpu]
[  377.706975]  drm_dev_release+0x20/0x40 [drm]
[  377.707006]  release_nodes+0x35/0xb0
[  377.707014]  devres_release_all+0x8b/0xc0
[  377.707020]  device_unbind_cleanup+0xe/0x70
[  377.707027]  device_release_driver_internal+0xee/0x160
[  377.707033]  driver_detach+0x44/0x90
[  377.707039]  bus_remove_driver+0x55/0xe0
[  377.707045]  pci_unregister_driver+0x3b/0x90
[  377.707052]  amdgpu_exit+0x11/0x6c [amdgpu]
[  377.707194]  __x64_sys_delete_module+0x142/0x2b0
[  377.707201]  ? fpregs_assert_state_consistent+0x22/0x50
[  377.707208]  ? exit_to_user_mode_prepare+0x3e/0x190
[  377.707215]  do_syscall_64+0x38/0x90
[  377.707221]  entry_SYSCALL_64_after_hwframe+0x63/0xcd

Signed-off-by: YiPeng Chai <YiPeng.Chai@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
2023-01-09 16:51:24 -05:00
Mario Limonciello
1923bc5a56 drm/amd: Delay removal of the firmware framebuffer
Removing the firmware framebuffer from the driver means that even
if the driver doesn't support the IP blocks in a GPU it will no
longer be functional after the driver fails to initialize.

This change will ensure that unsupported IP blocks at least cause
the driver to work with the EFI framebuffer.

Cc: stable@vger.kernel.org
Suggested-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 16:50:00 -05:00
Luben Tuikov
0be7ed8e7e drm/amdgpu: Fix potential NULL dereference
Fix potential NULL dereference, in the case when "man", the resource manager
might be NULL, when/if we print debug information.

Cc: Alex Deucher <Alexander.Deucher@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: AMD Graphics <amd-gfx@lists.freedesktop.org>
Cc: Dan Carpenter <error27@gmail.com>
Cc: kernel test robot <lkp@intel.com>
Fixes: 7554886daa ("drm/amdgpu: Fix size validation for non-exclusive domains (v4)")
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 16:49:43 -05:00
Mario Limonciello
2210af50ae drm/amd: Add a new helper for loading/validating microcode
All microcode runs a basic validation after it's been loaded. Each
IP block as part of init will run both.

Introduce a wrapper for request_firmware and amdgpu_ucode_validate.
This wrapper will also remap any error codes from request_firmware
to -ENODEV.  This is so that early_init will fail if firmware couldn't
be loaded instead of the IP block being disabled.

Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 16:27:58 -05:00
Mario Limonciello
755f32a39e drm/amd: Convert SMUv13 microcode to use amdgpu_ucode_ip_version_decode
The special case for the one dGPU has been moved into
`amdgpu_ucode_ip_version_decode`, so simplify this code.

Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 16:27:51 -05:00
Mario Limonciello
6b54496238 drm/amd: Convert SMUv11 microcode to use amdgpu_ucode_ip_version_decode
Remove the special casing from SMU v11 code. No intended functional
changes.

Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 16:27:43 -05:00
Mario Limonciello
54a3e03234 drm/amd: Add a legacy mapping to "amdgpu_ucode_ip_version_decode"
This will allow other parts of the driver that currently special
case firmware file names to before IP version style naming to just
have a single call to `amdgpu_ucode_ip_version_decode`.

Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 16:27:24 -05:00
Mario Limonciello
b7cdb41e7d drm/amd: Delay removal of the firmware framebuffer
Removing the firmware framebuffer from the driver means that even
if the driver doesn't support the IP blocks in a GPU it will no
longer be functional after the driver fails to initialize.

This change will ensure that unsupported IP blocks at least cause
the driver to work with the EFI framebuffer.

Cc: stable@vger.kernel.org
Suggested-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 16:26:48 -05:00
Luben Tuikov
08e60fac1d drm/amdgpu: Fix potential NULL dereference
Fix potential NULL dereference, in the case when "man", the resource manager
might be NULL, when/if we print debug information.

Cc: Alex Deucher <Alexander.Deucher@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: AMD Graphics <amd-gfx@lists.freedesktop.org>
Cc: Dan Carpenter <error27@gmail.com>
Cc: kernel test robot <lkp@intel.com>
Fixes: 7554886daa ("drm/amdgpu: Fix size validation for non-exclusive domains (v4)")
Signed-off-by: Luben Tuikov <luben.tuikov@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2023-01-09 16:24:26 -05:00
Johan Hovold
51b3802e79 dt-bindings: rtc: qcom-pm8xxx: allow 'wakeup-source' property
The RTC can be used as a wakeup source on at least some platforms so
allow it to be described as such.

Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Acked-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230104095612.6756-1-johan+linaro@kernel.org
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2023-01-09 22:12:01 +01:00
Dmitry Baryshkov
d26407788c dt-bindings: display/msm: qcom, sdm845-mdss: document the DP device
Document the DP controller added to the sdm845 display subsystem.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/517447/
Link: https://lore.kernel.org/r/20230109045458.316114-1-dmitry.baryshkov@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
2023-01-09 23:08:33 +02:00