aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/net/can/xlnx-versal-canfd.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/hw/net/can/xlnx-versal-canfd.c b/hw/net/can/xlnx-versal-canfd.c
index 47a14cfe63..5f083c21e9 100644
--- a/hw/net/can/xlnx-versal-canfd.c
+++ b/hw/net/can/xlnx-versal-canfd.c
@@ -1312,7 +1312,10 @@ static gint g_cmp_ids(gconstpointer data1, gconstpointer data2)
tx_ready_reg_info *tx_reg_1 = (tx_ready_reg_info *) data1;
tx_ready_reg_info *tx_reg_2 = (tx_ready_reg_info *) data2;
- return tx_reg_1->can_id - tx_reg_2->can_id;
+ if (tx_reg_1->can_id == tx_reg_2->can_id) {
+ return (tx_reg_1->reg_num < tx_reg_2->reg_num) ? -1 : 1;
+ }
+ return (tx_reg_1->can_id < tx_reg_2->can_id) ? -1 : 1;
}
static void free_list(GSList *list)