|
@@ -345,7 +345,6 @@ struct memory_increment {
|
|
|
struct list_head list;
|
|
|
u16 rn;
|
|
|
int standby;
|
|
|
- int usecount;
|
|
|
};
|
|
|
|
|
|
struct assign_storage_sccb {
|
|
@@ -463,21 +462,10 @@ static int sclp_mem_change_state(unsigned long start, unsigned long size,
|
|
|
break;
|
|
|
if (start > istart + rzm - 1)
|
|
|
continue;
|
|
|
- if (online) {
|
|
|
- if (incr->usecount++)
|
|
|
- continue;
|
|
|
- /*
|
|
|
- * Don't break the loop if one assign fails. Loop may
|
|
|
- * be walked again on CANCEL and we can't save
|
|
|
- * information if state changed before or not.
|
|
|
- * So continue and increase usecount for all increments.
|
|
|
- */
|
|
|
+ if (online)
|
|
|
rc |= sclp_assign_storage(incr->rn);
|
|
|
- } else {
|
|
|
- if (--incr->usecount)
|
|
|
- continue;
|
|
|
+ else
|
|
|
sclp_unassign_storage(incr->rn);
|
|
|
- }
|
|
|
}
|
|
|
return rc ? -EIO : 0;
|
|
|
}
|
|
@@ -561,8 +549,6 @@ static void __init sclp_add_standby_memory(void)
|
|
|
add_memory_merged(0);
|
|
|
}
|
|
|
|
|
|
-#define MEM_SCT_SIZE (1UL << SECTION_SIZE_BITS)
|
|
|
-
|
|
|
static void __init insert_increment(u16 rn, int standby, int assigned)
|
|
|
{
|
|
|
struct memory_increment *incr, *new_incr;
|
|
@@ -574,8 +560,6 @@ static void __init insert_increment(u16 rn, int standby, int assigned)
|
|
|
return;
|
|
|
new_incr->rn = rn;
|
|
|
new_incr->standby = standby;
|
|
|
- if (!standby)
|
|
|
- new_incr->usecount = rzm > MEM_SCT_SIZE ? rzm/MEM_SCT_SIZE : 1;
|
|
|
last_rn = 0;
|
|
|
prev = &sclp_mem_list;
|
|
|
list_for_each_entry(incr, &sclp_mem_list, list) {
|