2006-12-06 09:50:26

by Brice Goglin

[permalink] [raw]
Subject: sparse errors in srcu.h

Hi,

When running sparse checks on a file that ends up including srcu.h, we
get the following warnings:

include/linux/srcu.h:52:44: error: undefined identifier 'sp'
include/linux/srcu.h:52:44: error: bad constant expression
include/linux/srcu.h:53:56: error: undefined identifier 'sp'
include/linux/srcu.h:53:56: error: bad constant expression

It seems to be caused by the following lines:

int srcu_read_lock(struct srcu_struct *sp) __acquires(sp);
void srcu_read_unlock(struct srcu_struct *sp, int idx) __releases(sp);

which come from the following commit.

commit 621934ee7ed5b073c7fd638b347e632c53572761
Author: Paul E. McKenney <[email protected]>
Date: Wed Oct 4 02:17:02 2006 -0700

[PATCH] srcu-3: RCU variant permitting read-side blocking


I was wondering if there is a way to fix those errors...

Thanks,
Brice


2006-12-06 16:14:19

by Paul E. McKenney

[permalink] [raw]
Subject: Re: sparse errors in srcu.h

On Wed, Dec 06, 2006 at 10:50:14AM +0100, Brice Goglin wrote:
> Hi,
>
> When running sparse checks on a file that ends up including srcu.h, we
> get the following warnings:
>
> include/linux/srcu.h:52:44: error: undefined identifier 'sp'
> include/linux/srcu.h:52:44: error: bad constant expression
> include/linux/srcu.h:53:56: error: undefined identifier 'sp'
> include/linux/srcu.h:53:56: error: bad constant expression
>
> It seems to be caused by the following lines:
>
> int srcu_read_lock(struct srcu_struct *sp) __acquires(sp);
> void srcu_read_unlock(struct srcu_struct *sp, int idx) __releases(sp);
>
> which come from the following commit.
>
> commit 621934ee7ed5b073c7fd638b347e632c53572761
> Author: Paul E. McKenney <[email protected]>
> Date: Wed Oct 4 02:17:02 2006 -0700
>
> [PATCH] srcu-3: RCU variant permitting read-side blocking
>
>
> I was wondering if there is a way to fix those errors...

I believe that you need to update your version of sparse to 0.1.
See http://lwn.net/Articles/208312/ for more info.

Thanx, Paul

2006-12-07 09:26:50

by Brice Goglin

[permalink] [raw]
Subject: Re: sparse errors in srcu.h

Paul E. McKenney wrote:
> On Wed, Dec 06, 2006 at 10:50:14AM +0100, Brice Goglin wrote:
>
>> Hi,
>>
>> When running sparse checks on a file that ends up including srcu.h, we
>> get the following warnings:
>>
>> include/linux/srcu.h:52:44: error: undefined identifier 'sp'
>> include/linux/srcu.h:52:44: error: bad constant expression
>> include/linux/srcu.h:53:56: error: undefined identifier 'sp'
>> include/linux/srcu.h:53:56: error: bad constant expression
>>
>> It seems to be caused by the following lines:
>>
>> int srcu_read_lock(struct srcu_struct *sp) __acquires(sp);
>> void srcu_read_unlock(struct srcu_struct *sp, int idx) __releases(sp);
>>
>> which come from the following commit.
>>
>> commit 621934ee7ed5b073c7fd638b347e632c53572761
>> Author: Paul E. McKenney <[email protected]>
>> Date: Wed Oct 4 02:17:02 2006 -0700
>>
>> [PATCH] srcu-3: RCU variant permitting read-side blocking
>>
>>
>> I was wondering if there is a way to fix those errors...
>>
>
> I believe that you need to update your version of sparse to 0.1.
> See http://lwn.net/Articles/208312/ for more info.
>
> Thanx, Paul
>

Right, thanks, I had an old version hidden in /usr/local, works fine now.

Brice

2006-12-07 09:34:54

by Brice Goglin

[permalink] [raw]
Subject: Re: sparse errors in srcu.h

Paul E. McKenney wrote:
> On Wed, Dec 06, 2006 at 10:50:14AM +0100, Brice Goglin wrote:
>
>> Hi,
>>
>> When running sparse checks on a file that ends up including srcu.h, we
>> get the following warnings:
>>
>> include/linux/srcu.h:52:44: error: undefined identifier 'sp'
>> include/linux/srcu.h:52:44: error: bad constant expression
>> include/linux/srcu.h:53:56: error: undefined identifier 'sp'
>> include/linux/srcu.h:53:56: error: bad constant expression
>>
>> It seems to be caused by the following lines:
>>
>> int srcu_read_lock(struct srcu_struct *sp) __acquires(sp);
>> void srcu_read_unlock(struct srcu_struct *sp, int idx) __releases(sp);
>>
>> which come from the following commit.
>>
>> commit 621934ee7ed5b073c7fd638b347e632c53572761
>> Author: Paul E. McKenney <[email protected]>
>> Date: Wed Oct 4 02:17:02 2006 -0700
>>
>> [PATCH] srcu-3: RCU variant permitting read-side blocking
>>
>>
>> I was wondering if there is a way to fix those errors...
>>
>
> I believe that you need to update your version of sparse to 0.1.
> See http://lwn.net/Articles/208312/ for more info.
>
> Thanx, Paul
>

Right, thanks, I had an old version hidden in /usr/local, works fine now.

Brice

2006-12-07 10:04:12

by Brice Goglin

[permalink] [raw]
Subject: Re: sparse errors in srcu.h

Paul E. McKenney wrote:
> On Wed, Dec 06, 2006 at 10:50:14AM +0100, Brice Goglin wrote:
>
>> Hi,
>>
>> When running sparse checks on a file that ends up including srcu.h, we
>> get the following warnings:
>>
>> include/linux/srcu.h:52:44: error: undefined identifier 'sp'
>> include/linux/srcu.h:52:44: error: bad constant expression
>> include/linux/srcu.h:53:56: error: undefined identifier 'sp'
>> include/linux/srcu.h:53:56: error: bad constant expression
>>
>> It seems to be caused by the following lines:
>>
>> int srcu_read_lock(struct srcu_struct *sp) __acquires(sp);
>> void srcu_read_unlock(struct srcu_struct *sp, int idx) __releases(sp);
>>
>> which come from the following commit.
>>
>> commit 621934ee7ed5b073c7fd638b347e632c53572761
>> Author: Paul E. McKenney <[email protected]>
>> Date: Wed Oct 4 02:17:02 2006 -0700
>>
>> [PATCH] srcu-3: RCU variant permitting read-side blocking
>>
>>
>> I was wondering if there is a way to fix those errors...
>>
>
> I believe that you need to update your version of sparse to 0.1.
> See http://lwn.net/Articles/208312/ for more info.
>
> Thanx, Paul
>

Right, thanks, I had an old version hidden in /usr/local, works fine now.

Brice