qcacld-3.0: ndo_tx_timeout support for 5.6+ kernel

New parameter txqueue is added for callback ndo_tx_timeout.
Add support for it under the kernel version compilation flag.

Change-Id: I0234dade56f65d15a4370404e17ff51a8a73ee4e
CRs-Fixed: 2666436
This commit is contained in:
bings
2020-04-17 15:14:43 +08:00
committed by nshrivas
parent e50e7c0ea2
commit 9341e24bb2
4 changed files with 29 additions and 11 deletions

View File

@@ -57,6 +57,7 @@ QDF_STATUS hdd_softap_ipa_start_xmit(qdf_nbuf_t nbuf, qdf_netdev_t dev);
/**
* hdd_softap_tx_timeout() - TX timeout handler
* @dev: pointer to network device
* @txqueue: tx queue
*
* Function registered as a net_device .ndo_tx_timeout() method for
* master mode interfaces (SoftAP/P2P GO), called by the OS if the
@@ -64,8 +65,11 @@ QDF_STATUS hdd_softap_ipa_start_xmit(qdf_nbuf_t nbuf, qdf_netdev_t dev);
*
* Return: None
*/
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0))
void hdd_softap_tx_timeout(struct net_device *dev, unsigned int txqueue);
#else
void hdd_softap_tx_timeout(struct net_device *dev);
#endif
/**
* hdd_softap_init_tx_rx() - Initialize Tx/Rx module
* @adapter: pointer to adapter context

View File

@@ -83,7 +83,23 @@ struct hdd_context;
#define SME_QOS_UAPSD_CFG_VO_CHANGED_MASK 0xF8
netdev_tx_t hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev);
/**
* hdd_tx_timeout() - Wrapper function to protect __hdd_tx_timeout from SSR
* @net_dev: pointer to net_device structure
* @txqueue: tx queue
*
* Function called by OS if there is any timeout during transmission.
* Since HDD simply enqueues packet and returns control to OS right away,
* this would never be invoked
*
* Return: none
*/
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0))
void hdd_tx_timeout(struct net_device *dev, unsigned int txqueue);
#else
void hdd_tx_timeout(struct net_device *dev);
#endif
QDF_STATUS hdd_init_tx_rx(struct hdd_adapter *adapter);
QDF_STATUS hdd_deinit_tx_rx(struct hdd_adapter *adapter);

View File

@@ -814,7 +814,11 @@ static void __hdd_softap_tx_timeout(struct net_device *dev)
}
}
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0))
void hdd_softap_tx_timeout(struct net_device *net_dev, unsigned int txqueue)
#else
void hdd_softap_tx_timeout(struct net_device *net_dev)
#endif
{
struct osif_vdev_sync *vdev_sync;

View File

@@ -1315,17 +1315,11 @@ static void __hdd_tx_timeout(struct net_device *dev)
}
}
/**
* hdd_tx_timeout() - Wrapper function to protect __hdd_tx_timeout from SSR
* @net_dev: pointer to net_device structure
*
* Function called by OS if there is any timeout during transmission.
* Since HDD simply enqueues packet and returns control to OS right away,
* this would never be invoked
*
* Return: none
*/
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0))
void hdd_tx_timeout(struct net_device *net_dev, unsigned int txqueue)
#else
void hdd_tx_timeout(struct net_device *net_dev)
#endif
{
struct osif_vdev_sync *vdev_sync;