qcacmn: Add fix to support proxy arp function call

a call to osif_proxy_arp need to be invoked inside UMAC_SUPPORT_PROXY_ARP
as it was protected under build macro UMAC_SUPPORT_PROXY_ARP.

Change-Id: I6e165a328ac65fb659cb9fbc3a0ce39fcbb6744b
This commit is contained in:
nobelj
2021-03-31 00:30:04 -07:00
committed by snandini
parent 02fbfe0c0a
commit 20a3940590

View File

@@ -3268,6 +3268,47 @@ qdf_nbuf_t dp_tx_send_vdev_id_check(struct cdp_soc_t *soc_hdl,
return dp_tx_send(soc_hdl, vdev_id, nbuf);
}
#ifdef UMAC_SUPPORT_PROXY_ARP
/**
* dp_tx_proxy_arp() - Tx proxy arp handler
* @vdev: datapath vdev handle
* @buf: sk buffer
*
* Return: status
*/
static inline
int dp_tx_proxy_arp(struct dp_vdev *vdev, qdf_nbuf_t nbuf)
{
if (vdev->osif_proxy_arp)
return vdev->osif_proxy_arp(vdev->osif_vdev, nbuf);
/*
* when UMAC_SUPPORT_PROXY_ARP is defined, we expect
* osif_proxy_arp has a valid function pointer assigned
* to it
*/
dp_tx_err("valid function pointer for osif_proxy_arp is expected!!\n");
return QDF_STATUS_NOT_INITIALIZED;
}
#else
/**
* dp_tx_proxy_arp() - Tx proxy arp handler
* @vdev: datapath vdev handle
* @buf: sk buffer
*
* This function always return 0 when UMAC_SUPPORT_PROXY_ARP
* is not defined.
*
* Return: status
*/
static inline
int dp_tx_proxy_arp(struct dp_vdev *vdev, qdf_nbuf_t nbuf)
{
return QDF_STATUS_SUCCESS;
}
#endif
/**
* dp_tx_reinject_handler() - Tx Reinject Handler
* @soc: datapath soc handle
@@ -3355,8 +3396,8 @@ void dp_tx_reinject_handler(struct dp_soc *soc,
((is_mcast && peer->wds_ecm.wds_tx_mcast_4addr) ||
(is_ucast && peer->wds_ecm.wds_tx_ucast_4addr))))) {
#else
((peer->bss_peer && vdev->osif_proxy_arp &&
!(vdev->osif_proxy_arp(vdev->osif_vdev, nbuf))))) {
(peer->bss_peer &&
(dp_tx_proxy_arp(vdev, nbuf) == QDF_STATUS_SUCCESS))) {
#endif
peer_id = DP_INVALID_PEER;