Lines Matching refs:qevent_block
1459 static int mlxsw_sp_qevent_binding_configure(struct mlxsw_sp_qevent_block *qevent_block, in mlxsw_sp_qevent_binding_configure() argument
1465 list_for_each_entry(mall_entry, &qevent_block->mall_entry_list, list) { in mlxsw_sp_qevent_binding_configure()
1466 err = mlxsw_sp_qevent_entry_configure(qevent_block->mlxsw_sp, mall_entry, in mlxsw_sp_qevent_binding_configure()
1475 list_for_each_entry_continue_reverse(mall_entry, &qevent_block->mall_entry_list, list) in mlxsw_sp_qevent_binding_configure()
1476 mlxsw_sp_qevent_entry_deconfigure(qevent_block->mlxsw_sp, mall_entry, in mlxsw_sp_qevent_binding_configure()
1481 static void mlxsw_sp_qevent_binding_deconfigure(struct mlxsw_sp_qevent_block *qevent_block, in mlxsw_sp_qevent_binding_deconfigure() argument
1486 list_for_each_entry(mall_entry, &qevent_block->mall_entry_list, list) in mlxsw_sp_qevent_binding_deconfigure()
1487 mlxsw_sp_qevent_entry_deconfigure(qevent_block->mlxsw_sp, mall_entry, in mlxsw_sp_qevent_binding_deconfigure()
1491 static int mlxsw_sp_qevent_block_configure(struct mlxsw_sp_qevent_block *qevent_block) in mlxsw_sp_qevent_block_configure() argument
1496 list_for_each_entry(qevent_binding, &qevent_block->binding_list, list) { in mlxsw_sp_qevent_block_configure()
1497 err = mlxsw_sp_qevent_binding_configure(qevent_block, qevent_binding); in mlxsw_sp_qevent_block_configure()
1505 list_for_each_entry_continue_reverse(qevent_binding, &qevent_block->binding_list, list) in mlxsw_sp_qevent_block_configure()
1506 mlxsw_sp_qevent_binding_deconfigure(qevent_block, qevent_binding); in mlxsw_sp_qevent_block_configure()
1510 static void mlxsw_sp_qevent_block_deconfigure(struct mlxsw_sp_qevent_block *qevent_block) in mlxsw_sp_qevent_block_deconfigure() argument
1514 list_for_each_entry(qevent_binding, &qevent_block->binding_list, list) in mlxsw_sp_qevent_block_deconfigure()
1515 mlxsw_sp_qevent_binding_deconfigure(qevent_block, qevent_binding); in mlxsw_sp_qevent_block_deconfigure()
1531 struct mlxsw_sp_qevent_block *qevent_block, in mlxsw_sp_qevent_mall_replace() argument
1541 if (!list_empty(&qevent_block->mall_entry_list)) { in mlxsw_sp_qevent_mall_replace()
1580 list_add_tail(&mall_entry->list, &qevent_block->mall_entry_list); in mlxsw_sp_qevent_mall_replace()
1582 err = mlxsw_sp_qevent_block_configure(qevent_block); in mlxsw_sp_qevent_mall_replace()
1595 static void mlxsw_sp_qevent_mall_destroy(struct mlxsw_sp_qevent_block *qevent_block, in mlxsw_sp_qevent_mall_destroy() argument
1600 mall_entry = mlxsw_sp_qevent_mall_entry_find(qevent_block, f->cookie); in mlxsw_sp_qevent_mall_destroy()
1604 mlxsw_sp_qevent_block_deconfigure(qevent_block); in mlxsw_sp_qevent_mall_destroy()
1610 static int mlxsw_sp_qevent_block_mall_cb(struct mlxsw_sp_qevent_block *qevent_block, in mlxsw_sp_qevent_block_mall_cb() argument
1613 struct mlxsw_sp *mlxsw_sp = qevent_block->mlxsw_sp; in mlxsw_sp_qevent_block_mall_cb()
1617 return mlxsw_sp_qevent_mall_replace(mlxsw_sp, qevent_block, f); in mlxsw_sp_qevent_block_mall_cb()
1619 mlxsw_sp_qevent_mall_destroy(qevent_block, f); in mlxsw_sp_qevent_block_mall_cb()
1628 struct mlxsw_sp_qevent_block *qevent_block = cb_priv; in mlxsw_sp_qevent_block_cb() local
1632 return mlxsw_sp_qevent_block_mall_cb(qevent_block, type_data); in mlxsw_sp_qevent_block_cb()
1641 struct mlxsw_sp_qevent_block *qevent_block; in mlxsw_sp_qevent_block_create() local
1643 qevent_block = kzalloc(sizeof(*qevent_block), GFP_KERNEL); in mlxsw_sp_qevent_block_create()
1644 if (!qevent_block) in mlxsw_sp_qevent_block_create()
1647 INIT_LIST_HEAD(&qevent_block->binding_list); in mlxsw_sp_qevent_block_create()
1648 INIT_LIST_HEAD(&qevent_block->mall_entry_list); in mlxsw_sp_qevent_block_create()
1649 qevent_block->mlxsw_sp = mlxsw_sp; in mlxsw_sp_qevent_block_create()
1650 return qevent_block; in mlxsw_sp_qevent_block_create()
1654 mlxsw_sp_qevent_block_destroy(struct mlxsw_sp_qevent_block *qevent_block) in mlxsw_sp_qevent_block_destroy() argument
1656 WARN_ON(!list_empty(&qevent_block->binding_list)); in mlxsw_sp_qevent_block_destroy()
1657 WARN_ON(!list_empty(&qevent_block->mall_entry_list)); in mlxsw_sp_qevent_block_destroy()
1658 kfree(qevent_block); in mlxsw_sp_qevent_block_destroy()
1663 struct mlxsw_sp_qevent_block *qevent_block = cb_priv; in mlxsw_sp_qevent_block_release() local
1665 mlxsw_sp_qevent_block_destroy(qevent_block); in mlxsw_sp_qevent_block_release()
1713 struct mlxsw_sp_qevent_block *qevent_block; in mlxsw_sp_setup_tc_block_qevent_bind() local
1721 qevent_block = mlxsw_sp_qevent_block_create(mlxsw_sp, f->net); in mlxsw_sp_setup_tc_block_qevent_bind()
1722 if (!qevent_block) in mlxsw_sp_setup_tc_block_qevent_bind()
1724 block_cb = flow_block_cb_alloc(mlxsw_sp_qevent_block_cb, mlxsw_sp, qevent_block, in mlxsw_sp_setup_tc_block_qevent_bind()
1727 mlxsw_sp_qevent_block_destroy(qevent_block); in mlxsw_sp_setup_tc_block_qevent_bind()
1732 qevent_block = flow_block_cb_priv(block_cb); in mlxsw_sp_setup_tc_block_qevent_bind()
1743 if (WARN_ON(mlxsw_sp_qevent_binding_lookup(qevent_block, mlxsw_sp_port, f->sch->handle, in mlxsw_sp_setup_tc_block_qevent_bind()
1756 err = mlxsw_sp_qevent_binding_configure(qevent_block, qevent_binding); in mlxsw_sp_setup_tc_block_qevent_bind()
1760 list_add(&qevent_binding->list, &qevent_block->binding_list); in mlxsw_sp_setup_tc_block_qevent_bind()
1785 struct mlxsw_sp_qevent_block *qevent_block; in mlxsw_sp_setup_tc_block_qevent_unbind() local
1791 qevent_block = flow_block_cb_priv(block_cb); in mlxsw_sp_setup_tc_block_qevent_unbind()
1793 qevent_binding = mlxsw_sp_qevent_binding_lookup(qevent_block, mlxsw_sp_port, f->sch->handle, in mlxsw_sp_setup_tc_block_qevent_unbind()
1799 mlxsw_sp_qevent_binding_deconfigure(qevent_block, qevent_binding); in mlxsw_sp_setup_tc_block_qevent_unbind()