From: sudarsana.kalluru@cavium.com Date: Wed, 19 Apr 2017 10:19:54 +0000 (-0700) Subject: qed: Fix possible system hang in the dcbnl-getdcbx() path. X-Git-Tag: v4.1.12-111.0.20170918_2215~148 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=dd0537f8e300ff26d2429bc6bebda6420bc9349f;p=users%2Fjedix%2Flinux-maple.git qed: Fix possible system hang in the dcbnl-getdcbx() path. Orabug: 26783820 qed_dcbnl_get_dcbx() API uses kmalloc in GFT_KERNEL mode. The API gets invoked in the interrupt context by qed_dcbnl_getdcbx callback. Need to invoke this kmalloc in atomic mode. Signed-off-by: Sudarsana Reddy Kalluru Signed-off-by: Yuval Mintz Signed-off-by: David S. Miller [ Upstream commit 62289ba27558553871fd047baadaaeda886c6a63 ] Signed-off-by: Somasundaram Krishnasamy --- diff --git a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c index e2699d5a31b5..e87f39fb4a5b 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_dcbx.c +++ b/drivers/net/ethernet/qlogic/qed/qed_dcbx.c @@ -1262,7 +1262,7 @@ static struct qed_dcbx_get *qed_dcbnl_get_dcbx(struct qed_hwfn *hwfn, { struct qed_dcbx_get *dcbx_info; - dcbx_info = kzalloc(sizeof(*dcbx_info), GFP_KERNEL); + dcbx_info = kmalloc(sizeof(*dcbx_info), GFP_ATOMIC); if (!dcbx_info) return NULL;