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>
This commit is contained in:
Arnd Bergmann 2023-01-09 23:15:08 +01:00
commit a316877372
3 changed files with 14 additions and 4 deletions