diff options
| author | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
| commit | 1ac731c529cd4d6adbce134754b51ff7d822b145 (patch) | |
| tree | 143ab3f35ca5f3b69f583c84e6964b17139c2ec1 /drivers/scsi/ses.c | |
| parent | 07b4c950f27bef0362dc6ad7ee713aab61d58149 (diff) | |
| parent | 54116d442e001e1b6bd482122043b1870998a1f3 (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.6 merge window.
Diffstat (limited to 'drivers/scsi/ses.c')
| -rw-r--r-- | drivers/scsi/ses.c | 26 | 
1 files changed, 10 insertions, 16 deletions
diff --git a/drivers/scsi/ses.c b/drivers/scsi/ses.c index b11a9162e73a..d7d0c35c58b8 100644 --- a/drivers/scsi/ses.c +++ b/drivers/scsi/ses.c @@ -509,9 +509,6 @@ static int ses_enclosure_find_by_addr(struct enclosure_device *edev,  	int i;  	struct ses_component *scomp; -	if (!edev->component[0].scratch) -		return 0; -  	for (i = 0; i < edev->components; i++) {  		scomp = edev->component[i].scratch;  		if (scomp->addr != efd->addr) @@ -602,8 +599,10 @@ static void ses_enclosure_data_process(struct enclosure_device *edev,  						components++,  						type_ptr[0],  						name); -				else +				else if (components < edev->components)  					ecomp = &edev->component[components++]; +				else +					ecomp = ERR_PTR(-EINVAL);  				if (!IS_ERR(ecomp)) {  					if (addl_desc_ptr) { @@ -663,8 +662,7 @@ static void ses_match_to_enclosure(struct enclosure_device *edev,  	}  } -static int ses_intf_add(struct device *cdev, -			struct class_interface *intf) +static int ses_intf_add(struct device *cdev)  {  	struct scsi_device *sdev = to_scsi_device(cdev->parent);  	struct scsi_device *tmp_sdev; @@ -734,11 +732,6 @@ static int ses_intf_add(struct device *cdev,  			components += type_ptr[1];  	} -	if (components == 0) { -		sdev_printk(KERN_WARNING, sdev, "enclosure has no enumerated components\n"); -		goto err_free; -	} -  	ses_dev->page1 = buf;  	ses_dev->page1_len = len;  	buf = NULL; @@ -780,9 +773,11 @@ static int ses_intf_add(struct device *cdev,  		buf = NULL;  	}  page2_not_supported: -	scomp = kcalloc(components, sizeof(struct ses_component), GFP_KERNEL); -	if (!scomp) -		goto err_free; +	if (components > 0) { +		scomp = kcalloc(components, sizeof(struct ses_component), GFP_KERNEL); +		if (!scomp) +			goto err_free; +	}  	edev = enclosure_register(cdev->parent, dev_name(&sdev->sdev_gendev),  				  components, &ses_enclosure_callbacks); @@ -869,8 +864,7 @@ static void ses_intf_remove_enclosure(struct scsi_device *sdev)  	enclosure_unregister(edev);  } -static void ses_intf_remove(struct device *cdev, -			    struct class_interface *intf) +static void ses_intf_remove(struct device *cdev)  {  	struct scsi_device *sdev = to_scsi_device(cdev->parent);  |