소스 검색

qcacld-3.0: NULL check return-value from cds_get_context

Add null check while accessing pdev and hif pointers from cds_get_context
API in OL layer.

CRs-Fixed: 1096535
Change-Id: I2e3e7e04f1dcc9248fe173b7cdfc8d8704d0d1d9
Mohit Khanna 8 년 전
부모
커밋
bf9e3dde56
1개의 변경된 파일14개의 추가작업 그리고 0개의 파일을 삭제
  1. 14 0
      core/dp/txrx/ol_txrx.c

+ 14 - 0
core/dp/txrx/ol_txrx.c

@@ -4786,6 +4786,13 @@ void ol_register_lro_flush_cb(void (lro_flush_cb)(void *),
 	hif_device = (struct hif_opaque_softc *)
 				cds_get_context(QDF_MODULE_ID_HIF);
 
+	if (qdf_unlikely(hif_device == NULL)) {
+		TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
+			"%s: hif_device NULL!", __func__);
+		qdf_assert(0);
+		goto out;
+	}
+
 	hif_lro_flush_cb_register(hif_device, ol_txrx_lro_flush, lro_init_cb);
 	qdf_atomic_inc(&pdev->lro_info.lro_dev_cnt);
 
@@ -4819,6 +4826,13 @@ void ol_deregister_lro_flush_cb(void (lro_deinit_cb)(void *))
 	hif_device =
 		(struct hif_opaque_softc *)cds_get_context(QDF_MODULE_ID_HIF);
 
+	if (qdf_unlikely(hif_device == NULL)) {
+		TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,
+			"%s: hif_device NULL!", __func__);
+		qdf_assert(0);
+		return;
+	}
+
 	hif_lro_flush_cb_deregister(hif_device, lro_deinit_cb);
 
 	pdev->lro_info.lro_flush_cb = NULL;