mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	 ca7ce5a271
			
		
	
	
		ca7ce5a271
		
	
	
	
	
		
			
			When do coccicheck, I get this error:
spatch -D report --no-show-diff --very-quiet --cocci-file
./scripts/coccinelle/api/platform_get_irq.cocci --include-headers
--dir . -I ./arch/x86/include -I ./arch/x86/include/generated -I ./include
 -I ./arch/x86/include/uapi -I ./arch/x86/include/generated/uapi
 -I ./include/uapi -I ./include/generated/uapi
 --include ./include/linux/kconfig.h --jobs 192 --chunksize 1
minus: parse error:
  File "./scripts/coccinelle/api/platform_get_irq.cocci", line 24, column 9, charpos = 355
  around = '\(',
  whole content = if ( ret \( < \| <= \) 0 )
In commit e56476897448 ("fpga: Remove dev_err() usage
after platform_get_irq()") log, I found the semantic patch,
it fix this issue.
Fixes: 98051ba2b2 ("coccinelle: Add script to check for platform_get_irq() excessive prints")
Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Link: https://lore.kernel.org/r/20190906033006.17616-1-yuehaibing@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
		
	
			
		
			
				
	
	
		
			103 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| // SPDX-License-Identifier: GPL-2.0
 | |
| /// Remove dev_err() messages after platform_get_irq*() failures
 | |
| //
 | |
| // Confidence: Medium
 | |
| // Options: --include-headers
 | |
| 
 | |
| virtual patch
 | |
| virtual context
 | |
| virtual org
 | |
| virtual report
 | |
| 
 | |
| @depends on context@
 | |
| expression ret;
 | |
| struct platform_device *E;
 | |
| @@
 | |
| 
 | |
| ret =
 | |
| (
 | |
| platform_get_irq
 | |
| |
 | |
| platform_get_irq_byname
 | |
| )(E, ...);
 | |
| 
 | |
| if ( \( ret < 0 \| ret <= 0 \) )
 | |
| {
 | |
| (
 | |
| if (ret != -EPROBE_DEFER)
 | |
| { ...
 | |
| *dev_err(...);
 | |
| ... }
 | |
| |
 | |
| ...
 | |
| *dev_err(...);
 | |
| )
 | |
| ...
 | |
| }
 | |
| 
 | |
| @depends on patch@
 | |
| expression ret;
 | |
| struct platform_device *E;
 | |
| @@
 | |
| 
 | |
| ret =
 | |
| (
 | |
| platform_get_irq
 | |
| |
 | |
| platform_get_irq_byname
 | |
| )(E, ...);
 | |
| 
 | |
| if ( \( ret < 0 \| ret <= 0 \) )
 | |
| {
 | |
| (
 | |
| -if (ret != -EPROBE_DEFER)
 | |
| -{ ...
 | |
| -dev_err(...);
 | |
| -... }
 | |
| |
 | |
| ...
 | |
| -dev_err(...);
 | |
| )
 | |
| ...
 | |
| }
 | |
| 
 | |
| @r depends on org || report@
 | |
| position p1;
 | |
| expression ret;
 | |
| struct platform_device *E;
 | |
| @@
 | |
| 
 | |
| ret =
 | |
| (
 | |
| platform_get_irq
 | |
| |
 | |
| platform_get_irq_byname
 | |
| )(E, ...);
 | |
| 
 | |
| if ( \( ret < 0 \| ret <= 0 \) )
 | |
| {
 | |
| (
 | |
| if (ret != -EPROBE_DEFER)
 | |
| { ...
 | |
| dev_err@p1(...);
 | |
| ... }
 | |
| |
 | |
| ...
 | |
| dev_err@p1(...);
 | |
| )
 | |
| ...
 | |
| }
 | |
| 
 | |
| @script:python depends on org@
 | |
| p1 << r.p1;
 | |
| @@
 | |
| 
 | |
| cocci.print_main(p1)
 | |
| 
 | |
| @script:python depends on report@
 | |
| p1 << r.p1;
 | |
| @@
 | |
| 
 | |
| msg = "line %s is redundant because platform_get_irq() already prints an error" % (p1[0].line)
 | |
| coccilib.report.print_report(p1[0],msg)
 |