forked from mirrors/linux
		
	[SCSI] raid_attrs: fix dependency problems
RAID attributes uses scsi_is_sdev_device() to gate some SCSI specific checking code. This causes two problems. Firstly if SCSI == n just defining scsi_is_sdev_device() to return false might not be enough to prevent gcc from emitting the code (and thus referring to undefined symbols), so this needs surrounding with an ifdef. Secondly, using scsi_is_sdev_device() when SCSI is either y or m gives a subtle problem in the m case: raid_attrs must also be m to use the symbol. Do the usual Kconfig jiggery-pokery to fix this. Reported-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
		
							parent
							
								
									98e1e0f07c
								
							
						
					
					
						commit
						fac829fdca
					
				
					 2 changed files with 8 additions and 0 deletions
				
			
		|  | @ -1,9 +1,15 @@ | |||
| menu "SCSI device support" | ||||
| 
 | ||||
| config SCSI_MOD | ||||
|        tristate | ||||
|        default y if SCSI=n || SCSI=y | ||||
|        default m if SCSI=m | ||||
| 
 | ||||
| config RAID_ATTRS | ||||
| 	tristate "RAID Transport Class" | ||||
| 	default n | ||||
| 	depends on BLOCK | ||||
| 	depends on SCSI_MOD | ||||
| 	---help--- | ||||
| 	  Provides RAID | ||||
| 
 | ||||
|  |  | |||
|  | @ -63,6 +63,7 @@ static int raid_match(struct attribute_container *cont, struct device *dev) | |||
| 	 * emulated RAID devices, so start with SCSI */ | ||||
| 	struct raid_internal *i = ac_to_raid_internal(cont); | ||||
| 
 | ||||
| #if defined(CONFIG_SCSI) || defined(CONFIG_SCSI_MODULE) | ||||
| 	if (scsi_is_sdev_device(dev)) { | ||||
| 		struct scsi_device *sdev = to_scsi_device(dev); | ||||
| 
 | ||||
|  | @ -71,6 +72,7 @@ static int raid_match(struct attribute_container *cont, struct device *dev) | |||
| 
 | ||||
| 		return i->f->is_raid(dev); | ||||
| 	} | ||||
| #endif | ||||
| 	/* FIXME: look at other subsystems too */ | ||||
| 	return 0; | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 James Bottomley
						James Bottomley