Unverified Commit fec89e2f authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!6820 s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup

parents 326eec90 4c0c7f59
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -657,12 +657,12 @@ int dasd_alias_remove_device(struct dasd_device *device)
struct dasd_device *dasd_alias_get_start_dev(struct dasd_device *base_device)
struct dasd_device *dasd_alias_get_start_dev(struct dasd_device *base_device)
{
{
	struct dasd_eckd_private *alias_priv, *private = base_device->private;
	struct dasd_eckd_private *alias_priv, *private = base_device->private;
	struct alias_pav_group *group = private->pavgroup;
	struct alias_lcu *lcu = private->lcu;
	struct alias_lcu *lcu = private->lcu;
	struct dasd_device *alias_device;
	struct dasd_device *alias_device;
	struct alias_pav_group *group;
	unsigned long flags;
	unsigned long flags;


	if (!group || !lcu)
	if (!lcu)
		return NULL;
		return NULL;
	if (lcu->pav == NO_PAV ||
	if (lcu->pav == NO_PAV ||
	    lcu->flags & (NEED_UAC_UPDATE | UPDATE_PENDING))
	    lcu->flags & (NEED_UAC_UPDATE | UPDATE_PENDING))
@@ -679,6 +679,11 @@ struct dasd_device *dasd_alias_get_start_dev(struct dasd_device *base_device)
	}
	}


	spin_lock_irqsave(&lcu->lock, flags);
	spin_lock_irqsave(&lcu->lock, flags);
	group = private->pavgroup;
	if (!group) {
		spin_unlock_irqrestore(&lcu->lock, flags);
		return NULL;
	}
	alias_device = group->next;
	alias_device = group->next;
	if (!alias_device) {
	if (!alias_device) {
		if (list_empty(&group->aliaslist)) {
		if (list_empty(&group->aliaslist)) {