static int call_fib_entry_notifier(struct notifier_block *nb, struct net *net,
                                   enum fib_event_type event_type, u32 dst,
-                                  int dst_len, struct fib_info *fi,
-                                  u8 tos, u8 type, u32 tb_id)
+                                  int dst_len, struct fib_alias *fa)
 {
        struct fib_entry_notifier_info info = {
                .dst = dst,
                .dst_len = dst_len,
-               .fi = fi,
-               .tos = tos,
-               .type = type,
-               .tb_id = tb_id,
+               .fi = fa->fa_info,
+               .tos = fa->fa_tos,
+               .type = fa->fa_type,
+               .tb_id = fa->tb_id,
        };
        return call_fib4_notifier(nb, net, event_type, &info.info);
 }
 
 static int call_fib_entry_notifiers(struct net *net,
                                    enum fib_event_type event_type, u32 dst,
-                                   int dst_len, struct fib_info *fi,
-                                   u8 tos, u8 type, u32 tb_id)
+                                   int dst_len, struct fib_alias *fa)
 {
        struct fib_entry_notifier_info info = {
                .dst = dst,
                .dst_len = dst_len,
-               .fi = fi,
-               .tos = tos,
-               .type = type,
-               .tb_id = tb_id,
+               .fi = fa->fa_info,
+               .tos = fa->fa_tos,
+               .type = fa->fa_type,
+               .tb_id = fa->tb_id,
        };
        return call_fib4_notifiers(net, event_type, &info.info);
 }
                        new_fa->fa_default = -1;
 
                        call_fib_entry_notifiers(net, FIB_EVENT_ENTRY_REPLACE,
-                                                key, plen, fi,
-                                                new_fa->fa_tos, cfg->fc_type,
-                                                tb->tb_id);
+                                                key, plen, new_fa);
                        rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen,
                                  tb->tb_id, &cfg->fc_nlinfo, nlflags);
 
                tb->tb_num_default++;
 
        rt_cache_flush(cfg->fc_nlinfo.nl_net);
-       call_fib_entry_notifiers(net, event, key, plen, fi, tos, cfg->fc_type,
-                                tb->tb_id);
+       call_fib_entry_notifiers(net, event, key, plen, new_fa);
        rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, new_fa->tb_id,
                  &cfg->fc_nlinfo, nlflags);
 succeeded:
                return -ESRCH;
 
        call_fib_entry_notifiers(net, FIB_EVENT_ENTRY_DEL, key, plen,
-                                fa_to_delete->fa_info, tos,
-                                fa_to_delete->fa_type, tb->tb_id);
+                                fa_to_delete);
        rtmsg_fib(RTM_DELROUTE, htonl(key), fa_to_delete, plen, tb->tb_id,
                  &cfg->fc_nlinfo, 0);
 
 
                        call_fib_entry_notifiers(net, FIB_EVENT_ENTRY_DEL,
                                                 n->key,
-                                                KEYLENGTH - fa->fa_slen,
-                                                fi, fa->fa_tos, fa->fa_type,
-                                                tb->tb_id);
+                                                KEYLENGTH - fa->fa_slen, fa);
                        hlist_del_rcu(&fa->fa_list);
                        fib_release_info(fa->fa_info);
                        alias_free_mem_rcu(fa);
                        continue;
 
                call_fib_entry_notifier(nb, net, FIB_EVENT_ENTRY_ADD, l->key,
-                                       KEYLENGTH - fa->fa_slen, fi, fa->fa_tos,
-                                       fa->fa_type, fa->tb_id);
+                                       KEYLENGTH - fa->fa_slen, fa);
        }
 }