Subject: CVE-2022-48807: ice: Fix KASAN error in LAG NETDEV_UNREGISTER handler

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

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

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

ice: Fix KASAN error in LAG NETDEV_UNREGISTER handler

Currently, the same handler is called for both a NETDEV_BONDING_INFO
LAG unlink notification as for a NETDEV_UNREGISTER call.  This is
causing a problem though, since the netdev_notifier_info passed has
a different structure depending on which event is passed.  The problem
manifests as a call trace from a BUG: KASAN stack-out-of-bounds error.

Fix this by creating a handler specific to NETDEV_UNREGISTER that only
is passed valid elements in the netdev_notifier_info struct for the
NETDEV_UNREGISTER event.

Also included is the removal of an unbalanced dev_put on the peer_netdev
and related braces.

The Linux kernel CVE team has assigned CVE-2022-48807 to this issue.

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

	Issue introduced in 5.15 with commit 6a8b357278f5 and fixed in 5.15.24 with commit f9daedc3ab8f
	Issue introduced in 5.15 with commit 6a8b357278f5 and fixed in 5.16.10 with commit faa9bcf700ca
	Issue introduced in 5.15 with commit 6a8b357278f5 and fixed in 5.17 with commit bea1898f65b9
	Issue introduced in 5.14.16 with commit e83b3cce4722

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-2022-48807
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/ethernet/intel/ice/ice_lag.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/f9daedc3ab8f673e3a9374b91a89fbf1174df469
	https://git.kernel.org/stable/c/faa9bcf700ca1a0d09f92502a6b65d3ce313fb46
	https://git.kernel.org/stable/c/bea1898f65b9b7096cb4e73e97c83b94718f1fa1