/* Child qdisc manipulation */
        struct netdev_queue *   (*select_queue)(struct Qdisc *, struct tcmsg *);
        int                     (*graft)(struct Qdisc *, unsigned long cl,
-                                       struct Qdisc *, struct Qdisc **);
+                                       struct Qdisc *, struct Qdisc **,
+                                       struct netlink_ext_ack *extack);
        struct Qdisc *          (*leaf)(struct Qdisc *, unsigned long cl);
        void                    (*qlen_notify)(struct Qdisc *, unsigned long);
 
 
                        unsigned long cl = cops->find(parent, classid);
 
                        if (cl) {
-                               err = cops->graft(parent, cl, new, &old);
+                               err = cops->graft(parent, cl, new, &old,
+                                                 extack);
                        } else {
                                NL_SET_ERR_MSG(extack, "Specified class not found");
                                err = -ENOENT;
 
 }
 
 static int atm_tc_graft(struct Qdisc *sch, unsigned long arg,
-                       struct Qdisc *new, struct Qdisc **old)
+                       struct Qdisc *new, struct Qdisc **old,
+                       struct netlink_ext_ack *extack)
 {
        struct atm_qdisc_data *p = qdisc_priv(sch);
        struct atm_flow_data *flow = (struct atm_flow_data *)arg;
 
 }
 
 static int cbq_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
-                    struct Qdisc **old)
+                    struct Qdisc **old, struct netlink_ext_ack *extack)
 {
        struct cbq_class *cl = (struct cbq_class *)arg;
 
 
 }
 
 static int drr_graft_class(struct Qdisc *sch, unsigned long arg,
-                          struct Qdisc *new, struct Qdisc **old)
+                          struct Qdisc *new, struct Qdisc **old,
+                          struct netlink_ext_ack *extack)
 {
        struct drr_class *cl = (struct drr_class *)arg;
 
 
 /* ------------------------- Class/flow operations ------------------------- */
 
 static int dsmark_graft(struct Qdisc *sch, unsigned long arg,
-                       struct Qdisc *new, struct Qdisc **old)
+                       struct Qdisc *new, struct Qdisc **old,
+                       struct netlink_ext_ack *extack)
 {
        struct dsmark_qdisc_data *p = qdisc_priv(sch);
 
 
 
 static int
 hfsc_graft_class(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
-                struct Qdisc **old)
+                struct Qdisc **old, struct netlink_ext_ack *extack)
 {
        struct hfsc_class *cl = (struct hfsc_class *)arg;
 
 
 }
 
 static int htb_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
-                    struct Qdisc **old)
+                    struct Qdisc **old, struct netlink_ext_ack *extack)
 {
        struct htb_class *cl = (struct htb_class *)arg;
 
 
 }
 
 static int mq_graft(struct Qdisc *sch, unsigned long cl, struct Qdisc *new,
-                   struct Qdisc **old)
+                   struct Qdisc **old, struct netlink_ext_ack *extack)
 {
        struct netdev_queue *dev_queue = mq_queue_get(sch, cl);
        struct net_device *dev = qdisc_dev(sch);
 
 }
 
 static int mqprio_graft(struct Qdisc *sch, unsigned long cl, struct Qdisc *new,
-                   struct Qdisc **old)
+                       struct Qdisc **old, struct netlink_ext_ack *extack)
 {
        struct net_device *dev = qdisc_dev(sch);
        struct netdev_queue *dev_queue = mqprio_queue_get(sch, cl);
 
 }
 
 static int multiq_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
-                     struct Qdisc **old)
+                       struct Qdisc **old, struct netlink_ext_ack *extack)
 {
        struct multiq_sched_data *q = qdisc_priv(sch);
        unsigned long band = arg - 1;
 
 }
 
 static int netem_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
-                    struct Qdisc **old)
+                    struct Qdisc **old, struct netlink_ext_ack *extack)
 {
        struct netem_sched_data *q = qdisc_priv(sch);
 
 
 }
 
 static int prio_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
-                     struct Qdisc **old)
+                     struct Qdisc **old, struct netlink_ext_ack *extack)
 {
        struct prio_sched_data *q = qdisc_priv(sch);
        unsigned long band = arg - 1;
 
 }
 
 static int qfq_graft_class(struct Qdisc *sch, unsigned long arg,
-                          struct Qdisc *new, struct Qdisc **old)
+                          struct Qdisc *new, struct Qdisc **old,
+                          struct netlink_ext_ack *extack)
 {
        struct qfq_class *cl = (struct qfq_class *)arg;
 
 
 }
 
 static int red_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
-                    struct Qdisc **old)
+                    struct Qdisc **old, struct netlink_ext_ack *extack)
 {
        struct red_sched_data *q = qdisc_priv(sch);
 
 
 }
 
 static int sfb_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
-                    struct Qdisc **old)
+                    struct Qdisc **old, struct netlink_ext_ack *extack)
 {
        struct sfb_sched_data *q = qdisc_priv(sch);
 
 
 }
 
 static int tbf_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
-                    struct Qdisc **old)
+                    struct Qdisc **old, struct netlink_ext_ack *extack)
 {
        struct tbf_sched_data *q = qdisc_priv(sch);