| .. | .. |
|---|
| 675 | 675 | struct dasd_device *dasd_alias_get_start_dev(struct dasd_device *base_device) |
|---|
| 676 | 676 | { |
|---|
| 677 | 677 | struct dasd_eckd_private *alias_priv, *private = base_device->private; |
|---|
| 678 | | - struct alias_pav_group *group = private->pavgroup; |
|---|
| 679 | 678 | struct alias_lcu *lcu = private->lcu; |
|---|
| 680 | 679 | struct dasd_device *alias_device; |
|---|
| 680 | + struct alias_pav_group *group; |
|---|
| 681 | 681 | unsigned long flags; |
|---|
| 682 | 682 | |
|---|
| 683 | | - if (!group || !lcu) |
|---|
| 683 | + if (!lcu) |
|---|
| 684 | 684 | return NULL; |
|---|
| 685 | 685 | if (lcu->pav == NO_PAV || |
|---|
| 686 | 686 | lcu->flags & (NEED_UAC_UPDATE | UPDATE_PENDING)) |
|---|
| .. | .. |
|---|
| 697 | 697 | } |
|---|
| 698 | 698 | |
|---|
| 699 | 699 | spin_lock_irqsave(&lcu->lock, flags); |
|---|
| 700 | + group = private->pavgroup; |
|---|
| 701 | + if (!group) { |
|---|
| 702 | + spin_unlock_irqrestore(&lcu->lock, flags); |
|---|
| 703 | + return NULL; |
|---|
| 704 | + } |
|---|
| 700 | 705 | alias_device = group->next; |
|---|
| 701 | 706 | if (!alias_device) { |
|---|
| 702 | 707 | if (list_empty(&group->aliaslist)) { |
|---|