forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-09 244b2c5ca8b14627e4a17755e5922221e121c771
kernel/drivers/s390/block/dasd_alias.c
....@@ -675,12 +675,12 @@
675675 struct dasd_device *dasd_alias_get_start_dev(struct dasd_device *base_device)
676676 {
677677 struct dasd_eckd_private *alias_priv, *private = base_device->private;
678
- struct alias_pav_group *group = private->pavgroup;
679678 struct alias_lcu *lcu = private->lcu;
680679 struct dasd_device *alias_device;
680
+ struct alias_pav_group *group;
681681 unsigned long flags;
682682
683
- if (!group || !lcu)
683
+ if (!lcu)
684684 return NULL;
685685 if (lcu->pav == NO_PAV ||
686686 lcu->flags & (NEED_UAC_UPDATE | UPDATE_PENDING))
....@@ -697,6 +697,11 @@
697697 }
698698
699699 spin_lock_irqsave(&lcu->lock, flags);
700
+ group = private->pavgroup;
701
+ if (!group) {
702
+ spin_unlock_irqrestore(&lcu->lock, flags);
703
+ return NULL;
704
+ }
700705 alias_device = group->next;
701706 if (!alias_device) {
702707 if (list_empty(&group->aliaslist)) {