i40e: make use of hlist_for_each_entry_continue
Replace a complex if->continue->else->break construction in i40e_next_filter. We can simply use hlist_for_each_entry_continue instead. This drops a lot of confusing code. The resulting code is much easier to understand the intention, and follows the more normal pattern for using hlist loops. We could have also used a break with a "return next" at the end of the function, instead of return NULL, but the current implementation is explicitly clear that when you reach the end of the loop you get a NULL value. The alternative construction is less clear since the reader would have to know that next is NULL at the end of the loop. Change-Id: Ife74ca451dd79d7f0d93c672bd42092d324d4a03 Signed-off-by: Jacob Keller <jacob.e.keller@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
committed by
Jeff Kirsher
parent
55877012d5
commit
584a88709b
@@ -1883,19 +1883,12 @@ static void i40e_undo_add_filter_entries(struct i40e_vsi *vsi,
|
|||||||
static
|
static
|
||||||
struct i40e_new_mac_filter *i40e_next_filter(struct i40e_new_mac_filter *next)
|
struct i40e_new_mac_filter *i40e_next_filter(struct i40e_new_mac_filter *next)
|
||||||
{
|
{
|
||||||
while (next) {
|
hlist_for_each_entry_continue(next, hlist) {
|
||||||
next = hlist_entry(next->hlist.next,
|
if (!is_broadcast_ether_addr(next->f->macaddr))
|
||||||
typeof(struct i40e_new_mac_filter),
|
return next;
|
||||||
hlist);
|
|
||||||
|
|
||||||
/* keep going if we found a broadcast filter */
|
|
||||||
if (next && is_broadcast_ether_addr(next->f->macaddr))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return next;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user