Subject: CVE-2024-42224: net: dsa: mv88e6xxx: Correct check for empty list

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

net: dsa: mv88e6xxx: Correct check for empty list

Since commit a3c53be55c95 ("net: dsa: mv88e6xxx: Support multiple MDIO
busses") mv88e6xxx_default_mdio_bus() has checked that the
return value of list_first_entry() is non-NULL.

This appears to be intended to guard against the list chip->mdios being
empty.  However, it is not the correct check as the implementation of
list_first_entry is not designed to return NULL for empty lists.

Instead, use list_first_entry_or_null() which does return NULL if the
list is empty.

Flagged by Smatch.
Compile tested only.

The Linux kernel CVE team has assigned CVE-2024-42224 to this issue.

Affected and fixed versions
===========================

	Fixed in 4.19.318 with commit 47d28dde1726
	Fixed in 5.4.280 with commit 3bf8d70e1455
	Fixed in 5.10.222 with commit 2a2fe25a103c
	Fixed in 5.15.163 with commit 8c2c3cca816d
	Fixed in 6.1.98 with commit aa03f591ef31
	Fixed in 6.6.39 with commit 3f25b5f16354
	Fixed in 6.9.9 with commit f75625db838a
	Fixed in 6.10 with commit 4c7f3950a9fd

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2024-42224
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	drivers/net/dsa/mv88e6xxx/chip.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/47d28dde172696031c880c5778633cdca30394ee
	https://git.kernel.org/stable/c/3bf8d70e1455f87856640c3433b3660a31001618
	https://git.kernel.org/stable/c/2a2fe25a103cef73cde356e6d09da10f607e93f5
	https://git.kernel.org/stable/c/8c2c3cca816d074c75a2801d1ca0dea7b0148114
	https://git.kernel.org/stable/c/aa03f591ef31ba603a4a99d05d25a0f21ab1cd89
	https://git.kernel.org/stable/c/3f25b5f1635449036692a44b771f39f772190c1d
	https://git.kernel.org/stable/c/f75625db838ade28f032dacd0f0c8baca42ecde4
	https://git.kernel.org/stable/c/4c7f3950a9fd53a62b156c0fe7c3a2c43b0ba19b