Compare commits

...

2 Commits

Author SHA1 Message Date
Paul Hollinsky 6e9319c3f4 v2.1.1
Fix support for kernels <5.12
	Tested on 5.4.0
2022-04-01 14:24:37 -04:00
Paul Hollinsky 7c2338125f Support kernels before echo lengths were tracked
This applies to anything before 5.12.0
2022-04-01 14:24:02 -04:00
2 changed files with 21 additions and 4 deletions

View File

@ -1,3 +1,7 @@
v2.1.1
Fix support for kernels <5.12
Tested on 5.4.0
v2.1.0 v2.1.0
Implement proper functionality for echoing transmits Implement proper functionality for echoing transmits
Transmit errors are now reported properly Transmit errors are now reported properly

View File

@ -57,7 +57,7 @@
#define KO_DESC "Netdevice driver for Intrepid CAN/Ethernet devices" #define KO_DESC "Netdevice driver for Intrepid CAN/Ethernet devices"
#define KO_MAJOR 2 #define KO_MAJOR 2
#define KO_MINOR 1 #define KO_MINOR 1
#define KO_PATCH 0 #define KO_PATCH 1
#define KO_VERSION str(KO_MAJOR) "." str(KO_MINOR) "." str(KO_PATCH) #define KO_VERSION str(KO_MAJOR) "." str(KO_MINOR) "." str(KO_PATCH)
#define KO_VERSION_INT (KO_MAJOR << 16) | (KO_MINOR << 8) | KO_PATCH #define KO_VERSION_INT (KO_MAJOR << 16) | (KO_MINOR << 8) | KO_PATCH
@ -93,6 +93,7 @@ MODULE_VERSION(KO_VERSION);
#define KERNEL_FAULT_TAKES_VMA (LINUX_VERSION_CODE < KERNEL_VERSION(4,11,0)) #define KERNEL_FAULT_TAKES_VMA (LINUX_VERSION_CODE < KERNEL_VERSION(4,11,0))
#define KERNEL_SUPPORTS_ALIASES (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0)) #define KERNEL_SUPPORTS_ALIASES (LINUX_VERSION_CODE >= KERNEL_VERSION(4,15,0))
#define KERNEL_DEFINES_VM_FAULT_T (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0)) #define KERNEL_DEFINES_VM_FAULT_T (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
#define KERNEL_CAN_ECHO_TRACKS_LEN (LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0))
#if KERNEL_DEFINES_VM_FAULT_T == 0 #if KERNEL_DEFINES_VM_FAULT_T == 0
typedef int vm_fault_t; typedef int vm_fault_t;
@ -269,7 +270,11 @@ static netdev_tx_t intrepid_netdevice_xmit(struct sk_buff *skb, struct net_devic
} }
msg.description = intrepid_next_tx_description(ics, &tx_idx); msg.description = intrepid_next_tx_description(ics, &tx_idx);
can_put_echo_skb(skb, dev, tx_idx, msg.length); can_put_echo_skb(skb, dev, tx_idx
#if KERNEL_CAN_ECHO_TRACKS_LEN
, msg.length
#endif
);
consumed = true; consumed = true;
/* Copy the message into the usermode box */ /* Copy the message into the usermode box */
@ -537,11 +542,19 @@ static bool handle_transmit_receipt(
/* unsuccessful transmits */ /* unsuccessful transmits */
/* stats are handled in intrepid_fill_canerr_frame_from_neomessage */ /* stats are handled in intrepid_fill_canerr_frame_from_neomessage */
if (msg->status.globalError) { if (msg->status.globalError) {
can_free_echo_skb(device, tx_idx, NULL); can_free_echo_skb(device, tx_idx
#if KERNEL_CAN_ECHO_TRACKS_LEN
, NULL
#endif
);
return false; return false;
} }
length = can_get_echo_skb(device, tx_idx, NULL); length = can_get_echo_skb(device, tx_idx
#if KERNEL_CAN_ECHO_TRACKS_LEN
, NULL
#endif
);
stats->tx_packets++; stats->tx_packets++;
stats->tx_bytes += length; stats->tx_bytes += length;
return true; return true;