|
@@ -2373,6 +2373,7 @@ static struct ifmcaddr6 *igmp6_mc_get_idx(struct seq_file *seq, loff_t pos)
|
|
|
}
|
|
|
|
|
|
static void *igmp6_mc_seq_start(struct seq_file *seq, loff_t *pos)
|
|
|
+ __acquires(dev_base_lock)
|
|
|
{
|
|
|
read_lock(&dev_base_lock);
|
|
|
return igmp6_mc_get_idx(seq, *pos);
|
|
@@ -2387,6 +2388,7 @@ static void *igmp6_mc_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
|
|
}
|
|
|
|
|
|
static void igmp6_mc_seq_stop(struct seq_file *seq, void *v)
|
|
|
+ __releases(dev_base_lock)
|
|
|
{
|
|
|
struct igmp6_mc_iter_state *state = igmp6_mc_seq_private(seq);
|
|
|
if (likely(state->idev != NULL)) {
|
|
@@ -2516,6 +2518,7 @@ static struct ip6_sf_list *igmp6_mcf_get_idx(struct seq_file *seq, loff_t pos)
|
|
|
}
|
|
|
|
|
|
static void *igmp6_mcf_seq_start(struct seq_file *seq, loff_t *pos)
|
|
|
+ __acquires(dev_base_lock)
|
|
|
{
|
|
|
read_lock(&dev_base_lock);
|
|
|
return *pos ? igmp6_mcf_get_idx(seq, *pos - 1) : SEQ_START_TOKEN;
|
|
@@ -2533,6 +2536,7 @@ static void *igmp6_mcf_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
|
|
}
|
|
|
|
|
|
static void igmp6_mcf_seq_stop(struct seq_file *seq, void *v)
|
|
|
+ __releases(dev_base_lock)
|
|
|
{
|
|
|
struct igmp6_mcf_iter_state *state = igmp6_mcf_seq_private(seq);
|
|
|
if (likely(state->im != NULL)) {
|