[][kernel][common][eth][Fix panic issue for the Aquantia heartbeat check thread]

[Description]
Fix panic issue for the Aquantia heartbeat check thread.

The driver may encounter EINTR error when calling 'ktherad_create'
function. Therefore, we have to a check return valuen before wake-up
the thread.

If without this patch, the driver might encounter panic issue for the
heartbeat check thread.

[Release-log]
N/A


Change-Id: Iccfd6f986fc84564cf432aa7bf5debc328fb4cd0
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7572155
diff --git a/target/linux/mediatek/patches-5.4/999-2719-net-phy-aquantia-add-firmware-download.patch b/target/linux/mediatek/patches-5.4/999-2719-net-phy-aquantia-add-firmware-download.patch
index a66e0f1..c128bbe 100644
--- a/target/linux/mediatek/patches-5.4/999-2719-net-phy-aquantia-add-firmware-download.patch
+++ b/target/linux/mediatek/patches-5.4/999-2719-net-phy-aquantia-add-firmware-download.patch
@@ -153,7 +153,7 @@
 index 000000000..d2828aad4
 --- /dev/null
 +++ b/drivers/net/phy/aquantia_firmware.c
-@@ -0,0 +1,1090 @@
+@@ -0,0 +1,1091 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/* FW download driver for Aquantia PHY
 + */
@@ -1212,7 +1212,8 @@
 +						  "aqr_firmware_gandload_thread");
 +		if (IS_ERR(gangload_kthread)) {
 +			dev_err(dev,
-+				"failed to create aqr_firmware_gandload_thread\n");
++				"failed to create aqr_firmware_gandload_thread(%ld)\n",
++				 PTR_ERR(gangload_kthread));
 +			return PTR_ERR(gangload_kthread);
 +		}
 +		wake_up_process(gangload_kthread);
@@ -1373,7 +1374,7 @@
  
  	return aqr107_set_downshift(phydev, MDIO_AN_VEND_PROV_DOWNSHIFT_DFLT);
  }
-@@ -574,12 +559,39 @@ static void aqr107_link_change_notify(struct phy_device *phydev)
+@@ -574,12 +559,41 @@ static void aqr107_link_change_notify(struct phy_device *phydev)
  
  static int aqr107_suspend(struct phy_device *phydev)
  {
@@ -1404,9 +1405,11 @@
 +							"aqr_firmware_heartbeat_thread");
 +		if (IS_ERR(priv->heartbeat_thread)) {
 +			phydev_err(phydev,
-+				   "Failed to create aqr_firmware_heartbeat_thread\n");
-+		}
-+		wake_up_process(priv->heartbeat_thread);
++				   "Failed to create aqr_firmware_heartbeat_thread(%ld)\n",
++				    PTR_ERR(priv->heartbeat_thread));
++			priv->heartbeat_thread = NULL;
++		} else
++			wake_up_process(priv->heartbeat_thread);
 +	}
 +	spin_unlock(&priv->lock);
 +#endif