@@ -16,27 +16,27 @@ Signed-off-by: Faizal Rahim <faizal.abdul.rahim@linux.intel.com>
1616 net/sched/sch_taprio.c | 12 ++++++++++--
1717 1 file changed, 10 insertions(+), 2 deletions(-)
1818
19- diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c
20- index 8623dc0bafc09..1d17fe58ec867 100644
19+ Index: b/net/sched/sch_taprio.c
20+ ===================================================================
2121--- a/net/sched/sch_taprio.c
2222+++ b/net/sched/sch_taprio.c
23- @@ -43,6 +43,7 @@ static struct static_key_false taprio_have_working_mqprio;
23+ @@ -43,6 +43,7 @@ static struct static_key_false taprio_ha
2424 #define TAPRIO_SUPPORTED_FLAGS \
2525 (TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST | TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD)
2626 #define TAPRIO_FLAGS_INVALID U32_MAX
2727+#define CYCLE_TIME_CORRECTION_UNSPEC S64_MIN
28-
29- struct sched_entry {
30- /* Durations between this GCL entry and the GCL entry where the
31- @@ -77 ,6 +78 ,7 @@ struct sched_gate_list {
28+ /* Minimum value for picos_per_byte to ensure non-zero duration
29+ * for minimum-sized Ethernet frames (ETH_ZLEN = 60).
30+ * 60 * 17 > PSEC_PER_NSEC (1000)
31+ @@ -82 ,6 +83 ,7 @@ struct sched_gate_list {
3232 ktime_t cycle_end_time;
3333 s64 cycle_time;
3434 s64 cycle_time_extension;
3535+ s64 cycle_time_correction;
3636 s64 base_time;
3737 };
3838
39- @@ -215 ,6 +217 ,11 @@ static void switch_schedules(struct taprio_sched *q,
39+ @@ -220 ,6 +222 ,11 @@ static void switch_schedules(struct tapr
4040 *admin = NULL;
4141 }
4242
@@ -48,7 +48,7 @@ index 8623dc0bafc09..1d17fe58ec867 100644
4848 /* Get how much time has been already elapsed in the current cycle. */
4949 static s32 get_cycle_time_elapsed(struct sched_gate_list *sched, ktime_t time)
5050 {
51- @@ -929 ,7 +936 ,7 @@ static enum hrtimer_restart advance_sched(struct hrtimer *timer)
51+ @@ -934 ,7 +941 ,7 @@ static enum hrtimer_restart advance_sche
5252 admin = rcu_dereference_protected(q->admin_sched,
5353 lockdep_is_held(&q->current_entry_lock));
5454
@@ -57,7 +57,7 @@ index 8623dc0bafc09..1d17fe58ec867 100644
5757 switch_schedules(q, &admin, &oper);
5858
5959 /* This can happen in two cases: 1. this is the very first run
60- @@ -970 ,7 +977 ,7 @@ static enum hrtimer_restart advance_sched(struct hrtimer *timer)
60+ @@ -975 ,7 +982 ,7 @@ static enum hrtimer_restart advance_sche
6161 * schedule runs.
6262 */
6363 end_time = sched_base_time(admin);
@@ -66,14 +66,11 @@ index 8623dc0bafc09..1d17fe58ec867 100644
6666 }
6767
6868 next->end_time = end_time;
69- @@ -1165 ,6 +1172 ,7 @@ static int parse_taprio_schedule(struct taprio_sched *q, struct nlattr **tb,
69+ @@ -1170 ,6 +1177 ,7 @@ static int parse_taprio_schedule(struct
7070 }
7171
7272 taprio_calculate_gate_durations(q, new);
7373+ new->cycle_time_correction = CYCLE_TIME_CORRECTION_UNSPEC;
7474
7575 return 0;
7676 }
77- --
78- 2.25.1
79-
0 commit comments