Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 67955ba3 authored by Stephen M. Cameron's avatar Stephen M. Cameron Committed by Christoph Hellwig
Browse files

hpsa: fix handling of hpsa_volume_offline return value



Make return value an int instead of an unsigned char so that
we do not lose negative error return values.

Signed-off-by: default avatarStephen M. Cameron <scameron@beardog.cce.hp.com>
Reviewed-by: default avatarWebb Scales <webb.scales@hp.com>
Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent a84d794d
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -2543,11 +2543,11 @@ static int hpsa_get_volume_status(struct ctlr_info *h,
/* Determine offline status of a volume.
 * Return either:
 *  0 (not offline)
 * -1 (offline for unknown reasons)
 *  0xff (offline for unknown reasons)
 *  # (integer code indicating one of several NOT READY states
 *     describing why a volume is to be kept offline)
 */
static unsigned char hpsa_volume_offline(struct ctlr_info *h,
static int hpsa_volume_offline(struct ctlr_info *h,
					unsigned char scsi3addr[])
{
	struct CommandList *c;
@@ -2646,11 +2646,15 @@ static int hpsa_update_device_info(struct ctlr_info *h,

	if (this_device->devtype == TYPE_DISK &&
		is_logical_dev_addr_mode(scsi3addr)) {
		int volume_offline;

		hpsa_get_raid_level(h, scsi3addr, &this_device->raid_level);
		if (h->fw_support & MISC_FW_RAID_OFFLOAD_BASIC)
			hpsa_get_ioaccel_status(h, scsi3addr, this_device);
		this_device->volume_offline =
			hpsa_volume_offline(h, scsi3addr);
		volume_offline = hpsa_volume_offline(h, scsi3addr);
		if (volume_offline < 0 || volume_offline > 0xff)
			volume_offline = HPSA_VPD_LV_STATUS_UNSUPPORTED;
		this_device->volume_offline = volume_offline & 0xff;
	} else {
		this_device->raid_level = RAID_UNKNOWN;
		this_device->offload_config = 0;
+1 −1
Original line number Diff line number Diff line
@@ -151,7 +151,7 @@
#define HPSA_VPD_HEADER_SZ              4

/* Logical volume states */
#define HPSA_VPD_LV_STATUS_UNSUPPORTED			-1
#define HPSA_VPD_LV_STATUS_UNSUPPORTED			0xff
#define HPSA_LV_OK                                      0x0
#define HPSA_LV_UNDERGOING_ERASE			0x0F
#define HPSA_LV_UNDERGOING_RPI				0x12