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:
@@ -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
|
* hdd_softap_tx_timeout() - TX timeout handler
|
||||||
* @dev: pointer to network device
|
* @dev: pointer to network device
|
||||||
|
* @txqueue: tx queue
|
||||||
*
|
*
|
||||||
* Function registered as a net_device .ndo_tx_timeout() method for
|
* Function registered as a net_device .ndo_tx_timeout() method for
|
||||||
* master mode interfaces (SoftAP/P2P GO), called by the OS if the
|
* 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
|
* 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);
|
void hdd_softap_tx_timeout(struct net_device *dev);
|
||||||
|
#endif
|
||||||
/**
|
/**
|
||||||
* hdd_softap_init_tx_rx() - Initialize Tx/Rx module
|
* hdd_softap_init_tx_rx() - Initialize Tx/Rx module
|
||||||
* @adapter: pointer to adapter context
|
* @adapter: pointer to adapter context
|
||||||
|
@@ -83,7 +83,23 @@ struct hdd_context;
|
|||||||
#define SME_QOS_UAPSD_CFG_VO_CHANGED_MASK 0xF8
|
#define SME_QOS_UAPSD_CFG_VO_CHANGED_MASK 0xF8
|
||||||
|
|
||||||
netdev_tx_t hdd_hard_start_xmit(struct sk_buff *skb, struct net_device *dev);
|
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);
|
void hdd_tx_timeout(struct net_device *dev);
|
||||||
|
#endif
|
||||||
|
|
||||||
QDF_STATUS hdd_init_tx_rx(struct hdd_adapter *adapter);
|
QDF_STATUS hdd_init_tx_rx(struct hdd_adapter *adapter);
|
||||||
QDF_STATUS hdd_deinit_tx_rx(struct hdd_adapter *adapter);
|
QDF_STATUS hdd_deinit_tx_rx(struct hdd_adapter *adapter);
|
||||||
|
@@ -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)
|
void hdd_softap_tx_timeout(struct net_device *net_dev)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
struct osif_vdev_sync *vdev_sync;
|
struct osif_vdev_sync *vdev_sync;
|
||||||
|
|
||||||
|
@@ -1315,17 +1315,11 @@ static void __hdd_tx_timeout(struct net_device *dev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0))
|
||||||
* hdd_tx_timeout() - Wrapper function to protect __hdd_tx_timeout from SSR
|
void hdd_tx_timeout(struct net_device *net_dev, unsigned int txqueue)
|
||||||
* @net_dev: pointer to net_device structure
|
#else
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*/
|
|
||||||
void hdd_tx_timeout(struct net_device *net_dev)
|
void hdd_tx_timeout(struct net_device *net_dev)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
struct osif_vdev_sync *vdev_sync;
|
struct osif_vdev_sync *vdev_sync;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user