All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Cheng Jui Wang <cheng-jui.wang@mediatek.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>, Will Deacon <will@kernel.org>,
	Waiman Long <longman@redhat.com>,
	Boqun Feng <boqun.feng@gmail.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org, stable@vger.kernel.org,
	wsd_upstream@mediatek.com,
	Eason-YH Lin <eason-yh.lin@mediatek.com>,
	Kobe-CP Wu <kobe-cp.wu@mediatek.com>,
	Jeff-CC Hsu <jeff-cc.hsu@mediatek.com>
Subject: Re: [PATCH] lockdep: Correct lock_classes index mapping
Date: Thu, 10 Feb 2022 13:53:43 +0100	[thread overview]
Message-ID: <YgUK134eEhCXOsgk@kroah.com> (raw)
In-Reply-To: <20220210105011.21712-1-cheng-jui.wang@mediatek.com>

On Thu, Feb 10, 2022 at 06:50:11PM +0800, Cheng Jui Wang wrote:
> A kernel exception was hit when trying to dump /proc/lockdep_chains after
> lockdep report "BUG: MAX_LOCKDEP_CHAIN_HLOCKS too low!":
> 
> Unable to handle kernel paging request at virtual address 00054005450e05c3
> ...
> 00054005450e05c3] address between user and kernel address ranges
> ...
> pc : [0xffffffece769b3a8] string+0x50/0x10c
> lr : [0xffffffece769ac88] vsnprintf+0x468/0x69c
> ...
>  Call trace:
>   string+0x50/0x10c
>   vsnprintf+0x468/0x69c
>   seq_printf+0x8c/0xd8
>   print_name+0x64/0xf4
>   lc_show+0xb8/0x128
>   seq_read_iter+0x3cc/0x5fc
>   proc_reg_read_iter+0xdc/0x1d4
> 
> The cause of the problem is the function lock_chain_get_class() will
> shift lock_classes index by 1, but the index don't need to be shifted
> anymore since commit 01bb6f0af992 ("locking/lockdep: Change the range of
> class_idx in held_lock struct") already change the index to start from
> 0.
> 
> The lock_classes[-1] located at chain_hlocks array. When printing
> lock_classes[-1] after the chain_hlocks entries are modified, the
> exception happened.
> 
> The output of lockdep_chains are incorrect due to this problem too.
> 
> Fixes: f611e8cf98ec ("lockdep: Take read/write status in consideration when generate chainkey")
> 
> Signed-off-by: Cheng Jui Wang <cheng-jui.wang@mediatek.com>
> ---
>  kernel/locking/lockdep.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
> index 4a882f83aeb9..f8a0212189ca 100644
> --- a/kernel/locking/lockdep.c
> +++ b/kernel/locking/lockdep.c
> @@ -3462,7 +3462,7 @@ struct lock_class *lock_chain_get_class(struct lock_chain *chain, int i)
>  	u16 chain_hlock = chain_hlocks[chain->base + i];
>  	unsigned int class_idx = chain_hlock_class_idx(chain_hlock);
>  
> -	return lock_classes + class_idx - 1;
> +	return lock_classes + class_idx;
>  }
>  
>  /*
> @@ -3530,7 +3530,7 @@ static void print_chain_keys_chain(struct lock_chain *chain)
>  		hlock_id = chain_hlocks[chain->base + i];
>  		chain_key = print_chain_key_iteration(hlock_id, chain_key);
>  
> -		print_lock_name(lock_classes + chain_hlock_class_idx(hlock_id) - 1);
> +		print_lock_name(lock_classes + chain_hlock_class_idx(hlock_id));
>  		printk("\n");
>  	}
>  }
> -- 
> 2.18.0
> 

<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree.  Please read:
    https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.

</formletter>

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Greg KH <gregkh@linuxfoundation.org>
To: Cheng Jui Wang <cheng-jui.wang@mediatek.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>, Will Deacon <will@kernel.org>,
	Waiman Long <longman@redhat.com>,
	Boqun Feng <boqun.feng@gmail.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org, stable@vger.kernel.org,
	wsd_upstream@mediatek.com,
	Eason-YH Lin <eason-yh.lin@mediatek.com>,
	Kobe-CP Wu <kobe-cp.wu@mediatek.com>,
	Jeff-CC Hsu <jeff-cc.hsu@mediatek.com>
Subject: Re: [PATCH] lockdep: Correct lock_classes index mapping
Date: Thu, 10 Feb 2022 13:53:43 +0100	[thread overview]
Message-ID: <YgUK134eEhCXOsgk@kroah.com> (raw)
In-Reply-To: <20220210105011.21712-1-cheng-jui.wang@mediatek.com>

On Thu, Feb 10, 2022 at 06:50:11PM +0800, Cheng Jui Wang wrote:
> A kernel exception was hit when trying to dump /proc/lockdep_chains after
> lockdep report "BUG: MAX_LOCKDEP_CHAIN_HLOCKS too low!":
> 
> Unable to handle kernel paging request at virtual address 00054005450e05c3
> ...
> 00054005450e05c3] address between user and kernel address ranges
> ...
> pc : [0xffffffece769b3a8] string+0x50/0x10c
> lr : [0xffffffece769ac88] vsnprintf+0x468/0x69c
> ...
>  Call trace:
>   string+0x50/0x10c
>   vsnprintf+0x468/0x69c
>   seq_printf+0x8c/0xd8
>   print_name+0x64/0xf4
>   lc_show+0xb8/0x128
>   seq_read_iter+0x3cc/0x5fc
>   proc_reg_read_iter+0xdc/0x1d4
> 
> The cause of the problem is the function lock_chain_get_class() will
> shift lock_classes index by 1, but the index don't need to be shifted
> anymore since commit 01bb6f0af992 ("locking/lockdep: Change the range of
> class_idx in held_lock struct") already change the index to start from
> 0.
> 
> The lock_classes[-1] located at chain_hlocks array. When printing
> lock_classes[-1] after the chain_hlocks entries are modified, the
> exception happened.
> 
> The output of lockdep_chains are incorrect due to this problem too.
> 
> Fixes: f611e8cf98ec ("lockdep: Take read/write status in consideration when generate chainkey")
> 
> Signed-off-by: Cheng Jui Wang <cheng-jui.wang@mediatek.com>
> ---
>  kernel/locking/lockdep.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
> index 4a882f83aeb9..f8a0212189ca 100644
> --- a/kernel/locking/lockdep.c
> +++ b/kernel/locking/lockdep.c
> @@ -3462,7 +3462,7 @@ struct lock_class *lock_chain_get_class(struct lock_chain *chain, int i)
>  	u16 chain_hlock = chain_hlocks[chain->base + i];
>  	unsigned int class_idx = chain_hlock_class_idx(chain_hlock);
>  
> -	return lock_classes + class_idx - 1;
> +	return lock_classes + class_idx;
>  }
>  
>  /*
> @@ -3530,7 +3530,7 @@ static void print_chain_keys_chain(struct lock_chain *chain)
>  		hlock_id = chain_hlocks[chain->base + i];
>  		chain_key = print_chain_key_iteration(hlock_id, chain_key);
>  
> -		print_lock_name(lock_classes + chain_hlock_class_idx(hlock_id) - 1);
> +		print_lock_name(lock_classes + chain_hlock_class_idx(hlock_id));
>  		printk("\n");
>  	}
>  }
> -- 
> 2.18.0
> 

<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree.  Please read:
    https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.

</formletter>

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Greg KH <gregkh@linuxfoundation.org>
To: Cheng Jui Wang <cheng-jui.wang@mediatek.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>, Will Deacon <will@kernel.org>,
	Waiman Long <longman@redhat.com>,
	Boqun Feng <boqun.feng@gmail.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org, stable@vger.kernel.org,
	wsd_upstream@mediatek.com,
	Eason-YH Lin <eason-yh.lin@mediatek.com>,
	Kobe-CP Wu <kobe-cp.wu@mediatek.com>,
	Jeff-CC Hsu <jeff-cc.hsu@mediatek.com>
Subject: Re: [PATCH] lockdep: Correct lock_classes index mapping
Date: Thu, 10 Feb 2022 13:53:43 +0100	[thread overview]
Message-ID: <YgUK134eEhCXOsgk@kroah.com> (raw)
In-Reply-To: <20220210105011.21712-1-cheng-jui.wang@mediatek.com>

On Thu, Feb 10, 2022 at 06:50:11PM +0800, Cheng Jui Wang wrote:
> A kernel exception was hit when trying to dump /proc/lockdep_chains after
> lockdep report "BUG: MAX_LOCKDEP_CHAIN_HLOCKS too low!":
> 
> Unable to handle kernel paging request at virtual address 00054005450e05c3
> ...
> 00054005450e05c3] address between user and kernel address ranges
> ...
> pc : [0xffffffece769b3a8] string+0x50/0x10c
> lr : [0xffffffece769ac88] vsnprintf+0x468/0x69c
> ...
>  Call trace:
>   string+0x50/0x10c
>   vsnprintf+0x468/0x69c
>   seq_printf+0x8c/0xd8
>   print_name+0x64/0xf4
>   lc_show+0xb8/0x128
>   seq_read_iter+0x3cc/0x5fc
>   proc_reg_read_iter+0xdc/0x1d4
> 
> The cause of the problem is the function lock_chain_get_class() will
> shift lock_classes index by 1, but the index don't need to be shifted
> anymore since commit 01bb6f0af992 ("locking/lockdep: Change the range of
> class_idx in held_lock struct") already change the index to start from
> 0.
> 
> The lock_classes[-1] located at chain_hlocks array. When printing
> lock_classes[-1] after the chain_hlocks entries are modified, the
> exception happened.
> 
> The output of lockdep_chains are incorrect due to this problem too.
> 
> Fixes: f611e8cf98ec ("lockdep: Take read/write status in consideration when generate chainkey")
> 
> Signed-off-by: Cheng Jui Wang <cheng-jui.wang@mediatek.com>
> ---
>  kernel/locking/lockdep.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
> index 4a882f83aeb9..f8a0212189ca 100644
> --- a/kernel/locking/lockdep.c
> +++ b/kernel/locking/lockdep.c
> @@ -3462,7 +3462,7 @@ struct lock_class *lock_chain_get_class(struct lock_chain *chain, int i)
>  	u16 chain_hlock = chain_hlocks[chain->base + i];
>  	unsigned int class_idx = chain_hlock_class_idx(chain_hlock);
>  
> -	return lock_classes + class_idx - 1;
> +	return lock_classes + class_idx;
>  }
>  
>  /*
> @@ -3530,7 +3530,7 @@ static void print_chain_keys_chain(struct lock_chain *chain)
>  		hlock_id = chain_hlocks[chain->base + i];
>  		chain_key = print_chain_key_iteration(hlock_id, chain_key);
>  
> -		print_lock_name(lock_classes + chain_hlock_class_idx(hlock_id) - 1);
> +		print_lock_name(lock_classes + chain_hlock_class_idx(hlock_id));
>  		printk("\n");
>  	}
>  }
> -- 
> 2.18.0
> 

<formletter>

This is not the correct way to submit patches for inclusion in the
stable kernel tree.  Please read:
    https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html
for how to do this properly.

</formletter>

  parent reply	other threads:[~2022-02-10 12:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-10 10:50 [PATCH] lockdep: Correct lock_classes index mapping Cheng Jui Wang
2022-02-10 10:50 ` Cheng Jui Wang
2022-02-10 10:50 ` Cheng Jui Wang
2022-02-10 12:45 ` Boqun Feng
2022-02-10 12:45   ` Boqun Feng
2022-02-10 12:45   ` Boqun Feng
2022-02-10 12:53 ` Greg KH [this message]
2022-02-10 12:53   ` Greg KH
2022-02-10 12:53   ` Greg KH
2022-02-14 10:37 ` [tip: locking/urgent] " tip-bot2 for Cheng Jui Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YgUK134eEhCXOsgk@kroah.com \
    --to=gregkh@linuxfoundation.org \
    --cc=boqun.feng@gmail.com \
    --cc=cheng-jui.wang@mediatek.com \
    --cc=eason-yh.lin@mediatek.com \
    --cc=jeff-cc.hsu@mediatek.com \
    --cc=kobe-cp.wu@mediatek.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=longman@redhat.com \
    --cc=matthias.bgg@gmail.com \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=stable@vger.kernel.org \
    --cc=will@kernel.org \
    --cc=wsd_upstream@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.