s390/vmwatchdog: do not use static data
Using static data for fields which are accessed by HW will fail if the driver is build as a module (since this would be vmalloc'ed memory). This Bug was revealed via "s390: remove virt_to_phys implementation" - the old virt_to_phys implementation would have translated the address but it was not guaranteed that the memory was contiguous. Fix it by putting the data on the stack. Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
f4eae94f71
commit
739737efb5
|
@ -112,7 +112,8 @@ static int vmwdt_keepalive(void)
|
|||
|
||||
static int vmwdt_disable(void)
|
||||
{
|
||||
int ret = __diag288(wdt_cancel, 0, "", 0);
|
||||
char cmd[] = {'\0'};
|
||||
int ret = __diag288(wdt_cancel, 0, cmd, 0);
|
||||
WARN_ON(ret != 0);
|
||||
clear_bit(VMWDT_RUNNING, &vmwdt_is_open);
|
||||
return ret;
|
||||
|
@ -124,7 +125,7 @@ static int __init vmwdt_probe(void)
|
|||
* so we try initializing it with a NOP command ("BEGIN")
|
||||
* that won't cause any harm even if the following disable
|
||||
* fails for some reason */
|
||||
static char __initdata ebc_begin[] = {
|
||||
char ebc_begin[] = {
|
||||
194, 197, 199, 201, 213
|
||||
};
|
||||
if (__diag288(wdt_init, 15, ebc_begin, sizeof(ebc_begin)) != 0)
|
||||
|
|
Loading…
Reference in New Issue