OSDN Git Service

fix: taprio: Change type of txtime-delay parameter to u32
authorVedang Patel <vedang.patel@intel.com>
Tue, 16 Jul 2019 19:52:18 +0000 (12:52 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Jul 2019 21:19:19 +0000 (14:19 -0700)
During the review of the iproute2 patches for txtime-assist mode, it was
pointed out that it does not make sense for the txtime-delay parameter to
be negative. So, change the type of the parameter from s32 to u32.

Fixes: 4cfd5779bd6e ("taprio: Add support for txtime-assist mode")
Reported-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Vedang Patel <vedang.patel@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/pkt_sched.h
net/sched/sch_taprio.c

index 1f62325..18f1852 100644 (file)
@@ -1174,7 +1174,7 @@ enum {
        TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME, /* s64 */
        TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */
        TCA_TAPRIO_ATTR_FLAGS, /* u32 */
-       TCA_TAPRIO_ATTR_TXTIME_DELAY, /* s32 */
+       TCA_TAPRIO_ATTR_TXTIME_DELAY, /* u32 */
        __TCA_TAPRIO_ATTR_MAX,
 };
 
index 388750d..c39db50 100644 (file)
@@ -75,7 +75,7 @@ struct taprio_sched {
        struct sched_gate_list __rcu *admin_sched;
        struct hrtimer advance_timer;
        struct list_head taprio_list;
-       int txtime_delay;
+       u32 txtime_delay;
 };
 
 static ktime_t sched_base_time(const struct sched_gate_list *sched)
@@ -1113,7 +1113,7 @@ static int taprio_change(struct Qdisc *sch, struct nlattr *opt,
                        goto unlock;
                }
 
-               q->txtime_delay = nla_get_s32(tb[TCA_TAPRIO_ATTR_TXTIME_DELAY]);
+               q->txtime_delay = nla_get_u32(tb[TCA_TAPRIO_ATTR_TXTIME_DELAY]);
        }
 
        if (!TXTIME_ASSIST_IS_ENABLED(taprio_flags) &&
@@ -1430,7 +1430,7 @@ static int taprio_dump(struct Qdisc *sch, struct sk_buff *skb)
                goto options_error;
 
        if (q->txtime_delay &&
-           nla_put_s32(skb, TCA_TAPRIO_ATTR_TXTIME_DELAY, q->txtime_delay))
+           nla_put_u32(skb, TCA_TAPRIO_ATTR_TXTIME_DELAY, q->txtime_delay))
                goto options_error;
 
        if (oper && dump_schedule(skb, oper))