Skip to contentSkip to conversation

net/sunrpc/auth_gss/gss_mech_switch.c:252:5: sparse: context imbalance i

PATCH In review Fengguang Wu 2 participants 2 messages Jul 17, 2012

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 100/100 net/sunrpc/auth_gss/gss_mech_switch.c:252:5: sparse: context imbalance i

Hi Chuck,

There are new sparse warnings (likely a true locking bug) show up in

tree:   git://git.linux-nfs.org/projects/trondmy/linux-nfs.git nfs-for-bryan
head:   6a1a1e34dc55f17e7bd260809207442dbb7a0296
commit: 6a1a1e34dc55f17e7bd260809207442dbb7a0296 [100/100] SUNRPC: Add rpcauth_list_flavors()

All sparse warnings:

net/sunrpc/auth_gss/gss_mech_switch.c:143:21: sparse: symbol '_gss_mech_get_by_name' was not declared. Should it be static? net/sunrpc/auth_gss/gss_mech_switch.c:208:21: sparse: symbol '_gss_mech_get_by_pseudoflavor' was not declared. Should it be static?
+ net/sunrpc/auth_gss/gss_mech_switch.c:252:5: sparse: context imbalance in 'gss_mech_list_pseudoflavors' - wrong count at exit

vim +252 net/sunrpc/auth_gss/gss_mech_switch.c
249 * The returned array is not sorted by any policy. Callers should not
250 * rely on the order of the items in the returned array.
251 */

Quoted 1 line

252 int gss_mech_list_pseudoflavors(rpc_authflavor_t *array_ptr, int size)

253 {
254 struct gss_api_mech *pos = NULL;
255 int j, i = 0;

---
0-DAY kernel build testing backend Open Source Technology Centre
Fengguang Wu <[email protected]> Intel Corporation

#1 lore raw

Re: [nfs:nfs-for-bryan 100/100] net/sunrpc/auth_gss/gss_mech_switch.c:252:5: sparse: context imbalan

Quoted 8 lines · Fengguang Wu

Hi Chuck,

There are new sparse warnings (likely a true locking bug) show up in

tree:   git://git.linux-nfs.org/projects/trondmy/linux-nfs.git nfs-for-bryan
head:   6a1a1e34dc55f17e7bd260809207442dbb7a0296
commit: 6a1a1e34dc55f17e7bd260809207442dbb7a0296 [100/100] SUNRPC: Add rpcauth_list_flavors()
Quoted 5 lines

All sparse warnings:

net/sunrpc/auth_gss/gss_mech_switch.c:143:21: sparse: symbol '_gss_mech_get_by_name' was not declared. Should it be static? net/sunrpc/auth_gss/gss_mech_switch.c:208:21: sparse: symbol '_gss_mech_get_by_pseudoflavor' was not declared. Should it be static?
+ net/sunrpc/auth_gss/gss_mech_switch.c:252:5: sparse: context imbalance in 'gss_mech_list_pseudoflavors' - wrong count at exit

gss_mech_list_pseudoflavors() is missing a spin_unlock() before the "return -ENOMEM;".

Quoted 8 lines

vim +252 net/sunrpc/auth_gss/gss_mech_switch.c
249 * The returned array is not sorted by any policy. Callers should not
250 * rely on the order of the items in the returned array.
251 */

Quoted 1 line

252 int gss_mech_list_pseudoflavors(rpc_authflavor_t *array_ptr, int size)

253 {
254 struct gss_api_mech *pos = NULL;
255 int j, i = 0;

Signature · 2 lines
Chuck Lever
chuck[dot]lever[at]oracle[dot]com