if (op != p && ether_addr_equal(op->dev->dev_addr, addr) &&
                    (!vid || br_vlan_find(vg, vid))) {
                        f->dst = op;
-                       f->added_by_user = 0;
+                       clear_bit(BR_FDB_ADDED_BY_USER, &f->flags);
                        return;
                }
        }
        if (p && ether_addr_equal(br->dev->dev_addr, addr) &&
            (!vid || (v && br_vlan_should_use(v)))) {
                f->dst = NULL;
-               f->added_by_user = 0;
+               clear_bit(BR_FDB_ADDED_BY_USER, &f->flags);
                return;
        }
 
        spin_lock_bh(&br->hash_lock);
        f = br_fdb_find(br, addr, vid);
        if (f && test_bit(BR_FDB_LOCAL, &f->flags) &&
-           !f->added_by_user && f->dst == p)
+           !test_bit(BR_FDB_ADDED_BY_USER, &f->flags) && f->dst == p)
                fdb_delete_local(br, p, f);
        spin_unlock_bh(&br->hash_lock);
 }
        vg = nbp_vlan_group(p);
        hlist_for_each_entry(f, &br->fdb_list, fdb_node) {
                if (f->dst == p && test_bit(BR_FDB_LOCAL, &f->flags) &&
-                   !f->added_by_user) {
+                   !test_bit(BR_FDB_ADDED_BY_USER, &f->flags)) {
                        /* delete old one */
                        fdb_delete_local(br, p, f);
 
        /* If old entry was unassociated with any port, then delete it. */
        f = br_fdb_find(br, br->dev->dev_addr, 0);
        if (f && test_bit(BR_FDB_LOCAL, &f->flags) &&
-           !f->dst && !f->added_by_user)
+           !f->dst && !test_bit(BR_FDB_ADDED_BY_USER, &f->flags))
                fdb_delete_local(br, NULL, f);
 
        fdb_insert(br, NULL, newaddr, 0);
                        continue;
                f = br_fdb_find(br, br->dev->dev_addr, v->vid);
                if (f && test_bit(BR_FDB_LOCAL, &f->flags) &&
-                   !f->dst && !f->added_by_user)
+                   !f->dst && !test_bit(BR_FDB_ADDED_BY_USER, &f->flags))
                        fdb_delete_local(br, NULL, f);
                fdb_insert(br, NULL, newaddr, v->vid);
        }
                        set_bit(BR_FDB_LOCAL, &fdb->flags);
                if (is_static)
                        set_bit(BR_FDB_STATIC, &fdb->flags);
-               fdb->added_by_user = 0;
                fdb->added_by_external_learn = 0;
                fdb->offloaded = 0;
                fdb->updated = fdb->used = jiffies;
                        if (now != fdb->updated)
                                fdb->updated = now;
                        if (unlikely(added_by_user))
-                               fdb->added_by_user = 1;
+                               set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags);
                        if (unlikely(fdb_modified)) {
                                trace_br_fdb_update(br, source, addr, vid, added_by_user);
                                fdb_notify(br, fdb, RTM_NEWNEIGH, true);
                fdb = fdb_create(br, source, addr, vid, 0, 0);
                if (fdb) {
                        if (unlikely(added_by_user))
-                               fdb->added_by_user = 1;
+                               set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags);
                        trace_br_fdb_update(br, source, addr, vid,
                                            added_by_user);
                        fdb_notify(br, fdb, RTM_NEWNEIGH, true);
                modified = true;
        }
 
-       fdb->added_by_user = 1;
+       set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags);
 
        fdb->used = jiffies;
        if (modified) {
                        goto err_unlock;
                }
                if (swdev_notify)
-                       fdb->added_by_user = 1;
+                       set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags);
                fdb->added_by_external_learn = 1;
                fdb_notify(br, fdb, RTM_NEWNEIGH, swdev_notify);
        } else {
                if (fdb->added_by_external_learn) {
                        /* Refresh entry */
                        fdb->used = jiffies;
-               } else if (!fdb->added_by_user) {
+               } else if (!test_bit(BR_FDB_ADDED_BY_USER, &fdb->flags)) {
                        /* Take over SW learned entry */
                        fdb->added_by_external_learn = 1;
                        modified = true;
                }
 
                if (swdev_notify)
-                       fdb->added_by_user = 1;
+                       set_bit(BR_FDB_ADDED_BY_USER, &fdb->flags);
 
                if (modified)
                        fdb_notify(br, fdb, RTM_NEWNEIGH, swdev_notify);