mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 14:52:05 +00:00
s390/memory hotplug,sclp: get rid of per memory increment usecount
Given that the memory block size is always larger or equal to the memory increment size there is no need for a usecount anymore. Each memory increment belongs to exactly one memory block. So get rid of the usecount. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
e5d709bb5f
commit
1553556067
@ -345,7 +345,6 @@ struct memory_increment {
|
|||||||
struct list_head list;
|
struct list_head list;
|
||||||
u16 rn;
|
u16 rn;
|
||||||
int standby;
|
int standby;
|
||||||
int usecount;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct assign_storage_sccb {
|
struct assign_storage_sccb {
|
||||||
@ -463,21 +462,10 @@ static int sclp_mem_change_state(unsigned long start, unsigned long size,
|
|||||||
break;
|
break;
|
||||||
if (start > istart + rzm - 1)
|
if (start > istart + rzm - 1)
|
||||||
continue;
|
continue;
|
||||||
if (online) {
|
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.
|
|
||||||
*/
|
|
||||||
rc |= sclp_assign_storage(incr->rn);
|
rc |= sclp_assign_storage(incr->rn);
|
||||||
} else {
|
else
|
||||||
if (--incr->usecount)
|
|
||||||
continue;
|
|
||||||
sclp_unassign_storage(incr->rn);
|
sclp_unassign_storage(incr->rn);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return rc ? -EIO : 0;
|
return rc ? -EIO : 0;
|
||||||
}
|
}
|
||||||
@ -561,8 +549,6 @@ static void __init sclp_add_standby_memory(void)
|
|||||||
add_memory_merged(0);
|
add_memory_merged(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MEM_SCT_SIZE (1UL << SECTION_SIZE_BITS)
|
|
||||||
|
|
||||||
static void __init insert_increment(u16 rn, int standby, int assigned)
|
static void __init insert_increment(u16 rn, int standby, int assigned)
|
||||||
{
|
{
|
||||||
struct memory_increment *incr, *new_incr;
|
struct memory_increment *incr, *new_incr;
|
||||||
@ -574,8 +560,6 @@ static void __init insert_increment(u16 rn, int standby, int assigned)
|
|||||||
return;
|
return;
|
||||||
new_incr->rn = rn;
|
new_incr->rn = rn;
|
||||||
new_incr->standby = standby;
|
new_incr->standby = standby;
|
||||||
if (!standby)
|
|
||||||
new_incr->usecount = rzm > MEM_SCT_SIZE ? rzm/MEM_SCT_SIZE : 1;
|
|
||||||
last_rn = 0;
|
last_rn = 0;
|
||||||
prev = &sclp_mem_list;
|
prev = &sclp_mem_list;
|
||||||
list_for_each_entry(incr, &sclp_mem_list, list) {
|
list_for_each_entry(incr, &sclp_mem_list, list) {
|
||||||
|
Loading…
Reference in New Issue
Block a user