* Re: kernel/locking/lockdep.c: convert hash tables to hlists
2016-02-04 11:57 kernel/locking/lockdep.c: convert hash tables to hlists Dan Carpenter
@ 2016-02-04 18:50 ` Andrew Morton
0 siblings, 0 replies; 2+ messages in thread
From: Andrew Morton @ 2016-02-04 18:50 UTC (permalink / raw)
To: kernel-janitors
On Thu, 4 Feb 2016 14:57:03 +0300 Dan Carpenter <dan.carpenter@oracle.com> wrote:
> Hello Andrew Morton,
>
> The patch 680a50c9271b: "kernel/locking/lockdep.c: convert hash
> tables to hlists" from Feb 4, 2016, leads to the following static
> checker warning:
>
> kernel/locking/lockdep.c:3933 lockdep_free_key_range()
> warn: 'head' can't be NULL.
>
> kernel/locking/lockdep.c
> 3928 /*
> 3929 * Unhash all classes that were created by this module:
> 3930 */
> 3931 for (i = 0; i < CLASSHASH_SIZE; i++) {
> 3932 head = classhash_table + i;
> 3933 if (!head)
>
> classhash_table is an array.
>
> 3934 continue;
> 3935 hlist_for_each_entry_rcu(class, head, hash_entry) {
> 3936 if (within(class->key, start, size))
> 3937 zap_class(class);
> 3938 else if (within(class->name, start, size))
> 3939 zap_class(class);
> 3940 }
> 3941 }
>
> Also:
> kernel/locking/lockdep.c:3990 lockdep_reset_lock() warn: 'head' can't be NULL.
doh, OK, thanks, even better.
--- a/kernel/locking/lockdep.c~kernel-locking-lockdepc-convert-hash-tables-to-hlists-fix
+++ a/kernel/locking/lockdep.c
@@ -3930,8 +3930,6 @@ void lockdep_free_key_range(void *start,
*/
for (i = 0; i < CLASSHASH_SIZE; i++) {
head = classhash_table + i;
- if (!head)
- continue;
hlist_for_each_entry_rcu(class, head, hash_entry) {
if (within(class->key, start, size))
zap_class(class);
@@ -3987,8 +3985,6 @@ void lockdep_reset_lock(struct lockdep_m
locked = graph_lock();
for (i = 0; i < CLASSHASH_SIZE; i++) {
head = classhash_table + i;
- if (!head)
- continue;
hlist_for_each_entry_rcu(class, head, hash_entry) {
int match = 0;
_
^ permalink raw reply [flat|nested] 2+ messages in thread