ltq-atm/ltq-ptm: add kernel 5.10 compatiblity
The callback handling of the tasklet API was redesigned and the macros using the old syntax renamed to _OLD. The stuck queue is now passed to ndo_tx_timeout callback but not used so far. Signed-off-by: Mathias Kresin <dev@kresin.me>
This commit is contained in:
		| @@ -41,6 +41,7 @@ | |||||||
| #include <linux/atm.h> | #include <linux/atm.h> | ||||||
| #include <linux/clk.h> | #include <linux/clk.h> | ||||||
| #include <linux/interrupt.h> | #include <linux/interrupt.h> | ||||||
|  | #include <linux/version.h> | ||||||
| #ifdef CONFIG_XFRM | #ifdef CONFIG_XFRM | ||||||
|   #include <net/xfrm.h> |   #include <net/xfrm.h> | ||||||
| #endif | #endif | ||||||
| @@ -199,7 +200,11 @@ static inline void mailbox_aal_rx_handler(void); | |||||||
| static irqreturn_t mailbox_irq_handler(int, void *); | static irqreturn_t mailbox_irq_handler(int, void *); | ||||||
| static inline void mailbox_signal(unsigned int, int); | static inline void mailbox_signal(unsigned int, int); | ||||||
| static void do_ppe_tasklet(unsigned long); | static void do_ppe_tasklet(unsigned long); | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0) | ||||||
| DECLARE_TASKLET(g_dma_tasklet, do_ppe_tasklet, 0); | DECLARE_TASKLET(g_dma_tasklet, do_ppe_tasklet, 0); | ||||||
|  | #else | ||||||
|  | DECLARE_TASKLET_OLD(g_dma_tasklet, do_ppe_tasklet); | ||||||
|  | #endif | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  *  QSB & HTU setting functions |  *  QSB & HTU setting functions | ||||||
|   | |||||||
| @@ -127,7 +127,11 @@ static int ptm_stop(struct net_device *); | |||||||
|   static int ptm_napi_poll(struct napi_struct *, int); |   static int ptm_napi_poll(struct napi_struct *, int); | ||||||
| static int ptm_hard_start_xmit(struct sk_buff *, struct net_device *); | static int ptm_hard_start_xmit(struct sk_buff *, struct net_device *); | ||||||
| static int ptm_ioctl(struct net_device *, struct ifreq *, int); | static int ptm_ioctl(struct net_device *, struct ifreq *, int); | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0) | ||||||
| static void ptm_tx_timeout(struct net_device *); | static void ptm_tx_timeout(struct net_device *); | ||||||
|  | #else | ||||||
|  | static void ptm_tx_timeout(struct net_device *, unsigned int txqueue); | ||||||
|  | #endif | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  *  DSL Data LED |  *  DSL Data LED | ||||||
| @@ -511,7 +515,11 @@ static int ptm_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) | |||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0) | ||||||
| static void ptm_tx_timeout(struct net_device *dev) | static void ptm_tx_timeout(struct net_device *dev) | ||||||
|  | #else | ||||||
|  | static void ptm_tx_timeout(struct net_device *dev, unsigned int txqueue) | ||||||
|  | #endif | ||||||
| { | { | ||||||
|     int ndev; |     int ndev; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -77,7 +77,11 @@ static int ptm_stop(struct net_device *); | |||||||
|   static int ptm_napi_poll(struct napi_struct *, int); |   static int ptm_napi_poll(struct napi_struct *, int); | ||||||
| static int ptm_hard_start_xmit(struct sk_buff *, struct net_device *); | static int ptm_hard_start_xmit(struct sk_buff *, struct net_device *); | ||||||
| static int ptm_ioctl(struct net_device *, struct ifreq *, int); | static int ptm_ioctl(struct net_device *, struct ifreq *, int); | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0) | ||||||
| static void ptm_tx_timeout(struct net_device *); | static void ptm_tx_timeout(struct net_device *); | ||||||
|  | #else | ||||||
|  | static void ptm_tx_timeout(struct net_device *, unsigned int txqueue); | ||||||
|  | #endif | ||||||
|  |  | ||||||
| static inline struct sk_buff* alloc_skb_rx(void); | static inline struct sk_buff* alloc_skb_rx(void); | ||||||
| static inline struct sk_buff* alloc_skb_tx(unsigned int); | static inline struct sk_buff* alloc_skb_tx(unsigned int); | ||||||
| @@ -125,7 +129,11 @@ static char *g_net_dev_name[1] = {"dsl0"}; | |||||||
|  |  | ||||||
| static int g_ptm_prio_queue_map[8]; | static int g_ptm_prio_queue_map[8]; | ||||||
|  |  | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0) | ||||||
| static DECLARE_TASKLET(g_swap_desc_tasklet, do_swap_desc_tasklet, 0); | static DECLARE_TASKLET(g_swap_desc_tasklet, do_swap_desc_tasklet, 0); | ||||||
|  | #else | ||||||
|  | static DECLARE_TASKLET_OLD(g_swap_desc_tasklet, do_swap_desc_tasklet); | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  |  | ||||||
| unsigned int ifx_ptm_dbg_enable = DBG_ENABLE_MASK_ERR; | unsigned int ifx_ptm_dbg_enable = DBG_ENABLE_MASK_ERR; | ||||||
| @@ -451,7 +459,11 @@ static int ptm_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) | |||||||
|     return 0; |     return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | #if LINUX_VERSION_CODE < KERNEL_VERSION(5,6,0) | ||||||
| static void ptm_tx_timeout(struct net_device *dev) | static void ptm_tx_timeout(struct net_device *dev) | ||||||
|  | #else | ||||||
|  | static void ptm_tx_timeout(struct net_device *dev, unsigned int txqueue) | ||||||
|  | #endif | ||||||
| { | { | ||||||
|     ASSERT(dev == g_net_dev[0], "incorrect device"); |     ASSERT(dev == g_net_dev[0], "incorrect device"); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Mathias Kresin
					Mathias Kresin