forked from mirrors/linux
		
	checkpatch: externalize the structs that should be const
Make it easier to add new structs that should be const. Link: http://lkml.kernel.org/r/e5a8da43e7c11525bafbda1ca69a8323614dd942.1472664220.git.joe@perches.com Signed-off-by: Joe Perches <joe@perches.com> Cc: Julia Lawall <julia.lawall@lip6.fr> Cc: Kees Cook <keescook@chromium.org> Cc: Andy Whitcroft <apw@canonical.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									f333195d41
								
							
						
					
					
						commit
						bf1fa1dae6
					
				
					 2 changed files with 63 additions and 40 deletions
				
			
		| 
						 | 
					@ -54,6 +54,7 @@ my $min_conf_desc_length = 4;
 | 
				
			||||||
my $spelling_file = "$D/spelling.txt";
 | 
					my $spelling_file = "$D/spelling.txt";
 | 
				
			||||||
my $codespell = 0;
 | 
					my $codespell = 0;
 | 
				
			||||||
my $codespellfile = "/usr/share/codespell/dictionary.txt";
 | 
					my $codespellfile = "/usr/share/codespell/dictionary.txt";
 | 
				
			||||||
 | 
					my $conststructsfile = "$D/const_structs.checkpatch";
 | 
				
			||||||
my $color = 1;
 | 
					my $color = 1;
 | 
				
			||||||
my $allow_c99_comments = 1;
 | 
					my $allow_c99_comments = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -624,6 +625,29 @@ if ($codespell) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$misspellings = join("|", sort keys %spelling_fix) if keys %spelling_fix;
 | 
					$misspellings = join("|", sort keys %spelling_fix) if keys %spelling_fix;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					my $const_structs = "";
 | 
				
			||||||
 | 
					if (open(my $conststructs, '<', $conststructsfile)) {
 | 
				
			||||||
 | 
						while (<$conststructs>) {
 | 
				
			||||||
 | 
							my $line = $_;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$line =~ s/\s*\n?$//g;
 | 
				
			||||||
 | 
							$line =~ s/^\s*//g;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							next if ($line =~ m/^\s*#/);
 | 
				
			||||||
 | 
							next if ($line =~ m/^\s*$/);
 | 
				
			||||||
 | 
							if ($line =~ /\s/) {
 | 
				
			||||||
 | 
								print("$conststructsfile: '$line' invalid - ignored\n");
 | 
				
			||||||
 | 
								next;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							$const_structs .= '|' if ($const_structs ne "");
 | 
				
			||||||
 | 
							$const_structs .= $line;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						close($conststructsfile);
 | 
				
			||||||
 | 
					} else {
 | 
				
			||||||
 | 
						warn "No structs that should be const will be found - file '$conststructsfile': $!\n";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sub build_types {
 | 
					sub build_types {
 | 
				
			||||||
	my $mods = "(?x:  \n" . join("|\n  ", (@modifierList, @modifierListFile)) . "\n)";
 | 
						my $mods = "(?x:  \n" . join("|\n  ", (@modifierList, @modifierListFile)) . "\n)";
 | 
				
			||||||
	my $all = "(?x:  \n" . join("|\n  ", (@typeList, @typeListFile)) . "\n)";
 | 
						my $all = "(?x:  \n" . join("|\n  ", (@typeList, @typeListFile)) . "\n)";
 | 
				
			||||||
| 
						 | 
					@ -5912,46 +5936,6 @@ sub process {
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# check for various structs that are normally const (ops, kgdb, device_tree)
 | 
					# check for various structs that are normally const (ops, kgdb, device_tree)
 | 
				
			||||||
		my $const_structs = qr{
 | 
					 | 
				
			||||||
				acpi_dock_ops|
 | 
					 | 
				
			||||||
				address_space_operations|
 | 
					 | 
				
			||||||
				backlight_ops|
 | 
					 | 
				
			||||||
				block_device_operations|
 | 
					 | 
				
			||||||
				dentry_operations|
 | 
					 | 
				
			||||||
				dev_pm_ops|
 | 
					 | 
				
			||||||
				dma_map_ops|
 | 
					 | 
				
			||||||
				extent_io_ops|
 | 
					 | 
				
			||||||
				file_lock_operations|
 | 
					 | 
				
			||||||
				file_operations|
 | 
					 | 
				
			||||||
				hv_ops|
 | 
					 | 
				
			||||||
				ide_dma_ops|
 | 
					 | 
				
			||||||
				intel_dvo_dev_ops|
 | 
					 | 
				
			||||||
				item_operations|
 | 
					 | 
				
			||||||
				iwl_ops|
 | 
					 | 
				
			||||||
				kgdb_arch|
 | 
					 | 
				
			||||||
				kgdb_io|
 | 
					 | 
				
			||||||
				kset_uevent_ops|
 | 
					 | 
				
			||||||
				lock_manager_operations|
 | 
					 | 
				
			||||||
				microcode_ops|
 | 
					 | 
				
			||||||
				mtrr_ops|
 | 
					 | 
				
			||||||
				neigh_ops|
 | 
					 | 
				
			||||||
				nlmsvc_binding|
 | 
					 | 
				
			||||||
				of_device_id|
 | 
					 | 
				
			||||||
				pci_raw_ops|
 | 
					 | 
				
			||||||
				pipe_buf_operations|
 | 
					 | 
				
			||||||
				platform_hibernation_ops|
 | 
					 | 
				
			||||||
				platform_suspend_ops|
 | 
					 | 
				
			||||||
				proto_ops|
 | 
					 | 
				
			||||||
				rpc_pipe_ops|
 | 
					 | 
				
			||||||
				seq_operations|
 | 
					 | 
				
			||||||
				snd_ac97_build_ops|
 | 
					 | 
				
			||||||
				soc_pcmcia_socket_ops|
 | 
					 | 
				
			||||||
				stacktrace_ops|
 | 
					 | 
				
			||||||
				sysfs_ops|
 | 
					 | 
				
			||||||
				tty_operations|
 | 
					 | 
				
			||||||
				uart_ops|
 | 
					 | 
				
			||||||
				usb_mon_operations|
 | 
					 | 
				
			||||||
				wd_ops}x;
 | 
					 | 
				
			||||||
		if ($line !~ /\bconst\b/ &&
 | 
							if ($line !~ /\bconst\b/ &&
 | 
				
			||||||
		    $line =~ /\bstruct\s+($const_structs)\b/) {
 | 
							    $line =~ /\bstruct\s+($const_structs)\b/) {
 | 
				
			||||||
			WARN("CONST_STRUCT",
 | 
								WARN("CONST_STRUCT",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										39
									
								
								scripts/const_structs.checkpatch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								scripts/const_structs.checkpatch
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,39 @@
 | 
				
			||||||
 | 
					acpi_dock_ops
 | 
				
			||||||
 | 
					address_space_operations
 | 
				
			||||||
 | 
					backlight_ops
 | 
				
			||||||
 | 
					block_device_operations
 | 
				
			||||||
 | 
					dentry_operations
 | 
				
			||||||
 | 
					dev_pm_ops
 | 
				
			||||||
 | 
					dma_map_ops
 | 
				
			||||||
 | 
					extent_io_ops
 | 
				
			||||||
 | 
					file_lock_operations
 | 
				
			||||||
 | 
					file_operations
 | 
				
			||||||
 | 
					hv_ops
 | 
				
			||||||
 | 
					ide_dma_ops
 | 
				
			||||||
 | 
					intel_dvo_dev_ops
 | 
				
			||||||
 | 
					item_operations
 | 
				
			||||||
 | 
					iwl_ops
 | 
				
			||||||
 | 
					kgdb_arch
 | 
				
			||||||
 | 
					kgdb_io
 | 
				
			||||||
 | 
					kset_uevent_ops
 | 
				
			||||||
 | 
					lock_manager_operations
 | 
				
			||||||
 | 
					microcode_ops
 | 
				
			||||||
 | 
					mtrr_ops
 | 
				
			||||||
 | 
					neigh_ops
 | 
				
			||||||
 | 
					nlmsvc_binding
 | 
				
			||||||
 | 
					of_device_id
 | 
				
			||||||
 | 
					pci_raw_ops
 | 
				
			||||||
 | 
					pipe_buf_operations
 | 
				
			||||||
 | 
					platform_hibernation_ops
 | 
				
			||||||
 | 
					platform_suspend_ops
 | 
				
			||||||
 | 
					proto_ops
 | 
				
			||||||
 | 
					rpc_pipe_ops
 | 
				
			||||||
 | 
					seq_operations
 | 
				
			||||||
 | 
					snd_ac97_build_ops
 | 
				
			||||||
 | 
					soc_pcmcia_socket_ops
 | 
				
			||||||
 | 
					stacktrace_ops
 | 
				
			||||||
 | 
					sysfs_ops
 | 
				
			||||||
 | 
					tty_operations
 | 
				
			||||||
 | 
					uart_ops
 | 
				
			||||||
 | 
					usb_mon_operations
 | 
				
			||||||
 | 
					wd_ops
 | 
				
			||||||
		Loading…
	
		Reference in a new issue