Sfoglia il codice sorgente

s390/ccwgroup: fix an uninitialized return code

Since commit 0b60f9ead5d4816e7e3d6e28f4a0d22d4a1b2513
"s390: use device_remove_file_self() instead of device_schedule_callback()"
the return code of ccwgroup_ungroup_store is uninitialized. Make
sure the rc is always initialized.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Sebastian Ott 11 anni fa
parent
commit
0310c8b582
1 ha cambiato i file con 5 aggiunte e 4 eliminazioni
  1. 5 4
      drivers/s390/cio/ccwgroup.c

+ 5 - 4
drivers/s390/cio/ccwgroup.c

@@ -184,7 +184,7 @@ static ssize_t ccwgroup_ungroup_store(struct device *dev,
 				      const char *buf, size_t count)
 				      const char *buf, size_t count)
 {
 {
 	struct ccwgroup_device *gdev = to_ccwgroupdev(dev);
 	struct ccwgroup_device *gdev = to_ccwgroupdev(dev);
-	int rc;
+	int rc = 0;
 
 
 	/* Prevent concurrent online/offline processing and ungrouping. */
 	/* Prevent concurrent online/offline processing and ungrouping. */
 	if (atomic_cmpxchg(&gdev->onoff, 0, 1) != 0)
 	if (atomic_cmpxchg(&gdev->onoff, 0, 1) != 0)
@@ -196,11 +196,12 @@ static ssize_t ccwgroup_ungroup_store(struct device *dev,
 
 
 	if (device_remove_file_self(dev, attr))
 	if (device_remove_file_self(dev, attr))
 		ccwgroup_ungroup(gdev);
 		ccwgroup_ungroup(gdev);
+	else
+		rc = -ENODEV;
 out:
 out:
 	if (rc) {
 	if (rc) {
-		if (rc != -EAGAIN)
-			/* Release onoff "lock" when ungrouping failed. */
-			atomic_set(&gdev->onoff, 0);
+		/* Release onoff "lock" when ungrouping failed. */
+		atomic_set(&gdev->onoff, 0);
 		return rc;
 		return rc;
 	}
 	}
 	return count;
 	return count;