| .. | .. | 
|---|
| 100 | 100 |  	return 0; | 
|---|
| 101 | 101 |  } | 
|---|
| 102 | 102 |   | 
|---|
| 103 |  | -#ifndef is_affinity_mask_valid  | 
|---|
| 104 |  | -#define is_affinity_mask_valid(val) 1  | 
|---|
| 105 |  | -#endif  | 
|---|
| 106 |  | -  | 
|---|
| 107 | 103 |  int no_irq_affinity; | 
|---|
| 108 | 104 |  static int irq_affinity_proc_show(struct seq_file *m, void *v) | 
|---|
| 109 | 105 |  { | 
|---|
| .. | .. | 
|---|
| 158 | 154 |  	if (err) | 
|---|
| 159 | 155 |  		goto free_cpumask; | 
|---|
| 160 | 156 |   | 
|---|
| 161 |  | -	if (!is_affinity_mask_valid(new_value)) {  | 
|---|
| 162 |  | -		err = -EINVAL;  | 
|---|
| 163 |  | -		goto free_cpumask;  | 
|---|
| 164 |  | -	}  | 
|---|
| 165 |  | -  | 
|---|
| 166 | 157 |  	/* | 
|---|
| 167 | 158 |  	 * Do not allow disabling IRQs completely - it's a too easy | 
|---|
| 168 | 159 |  	 * way to make the system unusable accidentally :-) At least | 
|---|
| 169 |  | -	 * one online CPU still has to be targeted.  | 
|---|
 | 160 | +	 * one active CPU still has to be targeted.  | 
|---|
| 170 | 161 |  	 */ | 
|---|
| 171 |  | -	if (!cpumask_intersects(new_value, cpu_online_mask)) {  | 
|---|
 | 162 | +	if (!cpumask_intersects(new_value, cpu_active_mask)) {  | 
|---|
| 172 | 163 |  		/* | 
|---|
| 173 | 164 |  		 * Special case for empty set - allow the architecture code | 
|---|
| 174 | 165 |  		 * to set default SMP affinity. | 
|---|
| .. | .. | 
|---|
| 207 | 198 |  	return single_open(file, irq_affinity_list_proc_show, PDE_DATA(inode)); | 
|---|
| 208 | 199 |  } | 
|---|
| 209 | 200 |   | 
|---|
| 210 |  | -static const struct file_operations irq_affinity_proc_fops = {  | 
|---|
| 211 |  | -	.open		= irq_affinity_proc_open,  | 
|---|
| 212 |  | -	.read		= seq_read,  | 
|---|
| 213 |  | -	.llseek		= seq_lseek,  | 
|---|
| 214 |  | -	.release	= single_release,  | 
|---|
| 215 |  | -	.write		= irq_affinity_proc_write,  | 
|---|
 | 201 | +static const struct proc_ops irq_affinity_proc_ops = {  | 
|---|
 | 202 | +	.proc_open	= irq_affinity_proc_open,  | 
|---|
 | 203 | +	.proc_read	= seq_read,  | 
|---|
 | 204 | +	.proc_lseek	= seq_lseek,  | 
|---|
 | 205 | +	.proc_release	= single_release,  | 
|---|
 | 206 | +	.proc_write	= irq_affinity_proc_write,  | 
|---|
| 216 | 207 |  }; | 
|---|
| 217 | 208 |   | 
|---|
| 218 |  | -static const struct file_operations irq_affinity_list_proc_fops = {  | 
|---|
| 219 |  | -	.open		= irq_affinity_list_proc_open,  | 
|---|
| 220 |  | -	.read		= seq_read,  | 
|---|
| 221 |  | -	.llseek		= seq_lseek,  | 
|---|
| 222 |  | -	.release	= single_release,  | 
|---|
| 223 |  | -	.write		= irq_affinity_list_proc_write,  | 
|---|
 | 209 | +static const struct proc_ops irq_affinity_list_proc_ops = {  | 
|---|
 | 210 | +	.proc_open	= irq_affinity_list_proc_open,  | 
|---|
 | 211 | +	.proc_read	= seq_read,  | 
|---|
 | 212 | +	.proc_lseek	= seq_lseek,  | 
|---|
 | 213 | +	.proc_release	= single_release,  | 
|---|
 | 214 | +	.proc_write	= irq_affinity_list_proc_write,  | 
|---|
| 224 | 215 |  }; | 
|---|
| 225 | 216 |   | 
|---|
| 226 | 217 |  #ifdef CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK | 
|---|
| .. | .. | 
|---|
| 254 | 245 |  	if (err) | 
|---|
| 255 | 246 |  		goto out; | 
|---|
| 256 | 247 |   | 
|---|
| 257 |  | -	if (!is_affinity_mask_valid(new_value)) {  | 
|---|
| 258 |  | -		err = -EINVAL;  | 
|---|
| 259 |  | -		goto out;  | 
|---|
| 260 |  | -	}  | 
|---|
| 261 |  | -  | 
|---|
| 262 | 248 |  	/* | 
|---|
| 263 | 249 |  	 * Do not allow disabling IRQs completely - it's a too easy | 
|---|
| 264 | 250 |  	 * way to make the system unusable accidentally :-) At least | 
|---|
| .. | .. | 
|---|
| 282 | 268 |  	return single_open(file, default_affinity_show, PDE_DATA(inode)); | 
|---|
| 283 | 269 |  } | 
|---|
| 284 | 270 |   | 
|---|
| 285 |  | -static const struct file_operations default_affinity_proc_fops = {  | 
|---|
| 286 |  | -	.open		= default_affinity_open,  | 
|---|
| 287 |  | -	.read		= seq_read,  | 
|---|
| 288 |  | -	.llseek		= seq_lseek,  | 
|---|
| 289 |  | -	.release	= single_release,  | 
|---|
| 290 |  | -	.write		= default_affinity_write,  | 
|---|
 | 271 | +static const struct proc_ops default_affinity_proc_ops = {  | 
|---|
 | 272 | +	.proc_open	= default_affinity_open,  | 
|---|
 | 273 | +	.proc_read	= seq_read,  | 
|---|
 | 274 | +	.proc_lseek	= seq_lseek,  | 
|---|
 | 275 | +	.proc_release	= single_release,  | 
|---|
 | 276 | +	.proc_write	= default_affinity_write,  | 
|---|
| 291 | 277 |  }; | 
|---|
| 292 | 278 |   | 
|---|
| 293 | 279 |  static int irq_node_proc_show(struct seq_file *m, void *v) | 
|---|
| .. | .. | 
|---|
| 378 | 364 |  #ifdef CONFIG_SMP | 
|---|
| 379 | 365 |  	/* create /proc/irq/<irq>/smp_affinity */ | 
|---|
| 380 | 366 |  	proc_create_data("smp_affinity", 0644, desc->dir, | 
|---|
| 381 |  | -			 &irq_affinity_proc_fops, irqp);  | 
|---|
 | 367 | +			 &irq_affinity_proc_ops, irqp);  | 
|---|
| 382 | 368 |   | 
|---|
| 383 | 369 |  	/* create /proc/irq/<irq>/affinity_hint */ | 
|---|
| 384 | 370 |  	proc_create_single_data("affinity_hint", 0444, desc->dir, | 
|---|
| .. | .. | 
|---|
| 386 | 372 |   | 
|---|
| 387 | 373 |  	/* create /proc/irq/<irq>/smp_affinity_list */ | 
|---|
| 388 | 374 |  	proc_create_data("smp_affinity_list", 0644, desc->dir, | 
|---|
| 389 |  | -			 &irq_affinity_list_proc_fops, irqp);  | 
|---|
 | 375 | +			 &irq_affinity_list_proc_ops, irqp);  | 
|---|
| 390 | 376 |   | 
|---|
| 391 | 377 |  	proc_create_single_data("node", 0444, desc->dir, irq_node_proc_show, | 
|---|
| 392 | 378 |  			irqp); | 
|---|
| .. | .. | 
|---|
| 437 | 423 |  { | 
|---|
| 438 | 424 |  #ifdef CONFIG_SMP | 
|---|
| 439 | 425 |  	proc_create("irq/default_smp_affinity", 0644, NULL, | 
|---|
| 440 |  | -		    &default_affinity_proc_fops);  | 
|---|
 | 426 | +		    &default_affinity_proc_ops);  | 
|---|
| 441 | 427 |  #endif | 
|---|
| 442 | 428 |  } | 
|---|
| 443 | 429 |   | 
|---|
| .. | .. | 
|---|
| 499 | 485 |   | 
|---|
| 500 | 486 |  	rcu_read_lock(); | 
|---|
| 501 | 487 |  	desc = irq_to_desc(i); | 
|---|
| 502 |  | -	if (!desc)  | 
|---|
 | 488 | +	if (!desc || irq_settings_is_hidden(desc))  | 
|---|
| 503 | 489 |  		goto outsparse; | 
|---|
| 504 | 490 |   | 
|---|
| 505 | 491 |  	if (desc->kstat_irqs) | 
|---|