]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/sched/cls_api.c
net: sched: add API for registering unlocked offload block callbacks
[linux.git] / net / sched / cls_api.c
index 8b807e75fae21e75f7615fad746dcbe9709590a3..1a39779bdbadee970b0c3951ba6cf57f6650c6b1 100644 (file)
@@ -1418,6 +1418,8 @@ static int tcf_block_bind(struct tcf_block *block,
                                                  bo->extack);
                if (err)
                        goto err_unroll;
+               if (!bo->unlocked_driver_cb)
+                       block->lockeddevcnt++;
 
                i++;
        }
@@ -1433,6 +1435,8 @@ static int tcf_block_bind(struct tcf_block *block,
                                                    block_cb->cb_priv, false,
                                                    tcf_block_offload_in_use(block),
                                                    NULL);
+                       if (!bo->unlocked_driver_cb)
+                               block->lockeddevcnt--;
                }
                flow_block_cb_free(block_cb);
        }
@@ -1454,6 +1458,8 @@ static void tcf_block_unbind(struct tcf_block *block,
                                            NULL);
                list_del(&block_cb->list);
                flow_block_cb_free(block_cb);
+               if (!bo->unlocked_driver_cb)
+                       block->lockeddevcnt--;
        }
 }