OSDN Git Service

raw: Add missing annotations to raw_seq_start() and raw_seq_stop()
authorJules Irenge <jbi.octave@gmail.com>
Wed, 11 Mar 2020 01:09:02 +0000 (01:09 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 12 Mar 2020 06:19:40 +0000 (23:19 -0700)
Sparse reports warnings at raw_seq_start() and raw_seq_stop()

warning: context imbalance in raw_seq_start() - wrong count at exit
warning: context imbalance in raw_seq_stop() - unexpected unlock

The root cause is the missing annotations at raw_seq_start()
and raw_seq_stop()
Add the missing __acquires(&h->lock) annotation
Add the missing __releases(&h->lock) annotation

Signed-off-by: Jules Irenge <jbi.octave@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/raw.c

index 3183413..4766591 100644 (file)
@@ -1034,6 +1034,7 @@ static struct sock *raw_get_idx(struct seq_file *seq, loff_t pos)
 }
 
 void *raw_seq_start(struct seq_file *seq, loff_t *pos)
+       __acquires(&h->lock)
 {
        struct raw_hashinfo *h = PDE_DATA(file_inode(seq->file));
 
@@ -1056,6 +1057,7 @@ void *raw_seq_next(struct seq_file *seq, void *v, loff_t *pos)
 EXPORT_SYMBOL_GPL(raw_seq_next);
 
 void raw_seq_stop(struct seq_file *seq, void *v)
+       __releases(&h->lock)
 {
        struct raw_hashinfo *h = PDE_DATA(file_inode(seq->file));