Compare commits
2 Commits
7924117c2a
...
6e9319c3f4
| Author | SHA1 | Date |
|---|---|---|
|
|
6e9319c3f4 | |
|
|
7c2338125f |
|
|
@ -1,3 +1,7 @@
|
|||
v2.1.1
|
||||
Fix support for kernels <5.12
|
||||
Tested on 5.4.0
|
||||
|
||||
v2.1.0
|
||||
Implement proper functionality for echoing transmits
|
||||
Transmit errors are now reported properly
|
||||
|
|
|
|||
21
intrepid.c
21
intrepid.c
|
|
@ -57,7 +57,7 @@
|
|||
#define KO_DESC "Netdevice driver for Intrepid CAN/Ethernet devices"
|
||||
#define KO_MAJOR 2
|
||||
#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_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_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_CAN_ECHO_TRACKS_LEN (LINUX_VERSION_CODE >= KERNEL_VERSION(5,12,0))
|
||||
|
||||
#if KERNEL_DEFINES_VM_FAULT_T == 0
|
||||
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);
|
||||
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;
|
||||
|
||||
/* Copy the message into the usermode box */
|
||||
|
|
@ -537,11 +542,19 @@ static bool handle_transmit_receipt(
|
|||
/* unsuccessful transmits */
|
||||
/* stats are handled in intrepid_fill_canerr_frame_from_neomessage */
|
||||
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;
|
||||
}
|
||||
|
||||
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_bytes += length;
|
||||
return true;
|
||||
|
|
|
|||
Loading…
Reference in New Issue