Subject: CVE-2022-49027: iavf: Fix error handling in iavf_init_module()

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

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

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

iavf: Fix error handling in iavf_init_module()

The iavf_init_module() won't destroy workqueue when pci_register_driver()
failed. Call destroy_workqueue() when pci_register_driver() failed to
prevent the resource leak.

Similar to the handling of u132_hcd_init in commit f276e002793c
("usb: u132-hcd: fix resource leak")

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

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

	Issue introduced in 4.6 with commit 2803b16c10ea and fixed in 5.10.158 with commit 971c55f0763b
	Issue introduced in 4.6 with commit 2803b16c10ea and fixed in 5.15.82 with commit 0d9f5bd54b91
	Issue introduced in 4.6 with commit 2803b16c10ea and fixed in 6.0.12 with commit bd477b891a4f
	Issue introduced in 4.6 with commit 2803b16c10ea and fixed in 6.1 with commit 227d8d2f7f22

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-49027
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/iavf/iavf_main.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/971c55f0763b480e63ceb7a22beb19be2509e5ed
	https://git.kernel.org/stable/c/0d9f5bd54b913018031c5b964fc1f9a31f5f6cb5
	https://git.kernel.org/stable/c/bd477b891a4fa084561234eed4afacb3001dd359
	https://git.kernel.org/stable/c/227d8d2f7f2278b8468c5531b0cd0f2a905b4486