diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-05-21 08:27:15 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-05-21 08:27:15 +0200 |
commit | c049ffb35ac4a393919a001f8f468c43cb185a34 (patch) | |
tree | 3d8835848724bebf6326aaed3ae5e4dd8d302057 /arch/powerpc/platforms/powernv/opal-nvram.c | |
parent | baf12d6ddeae74dfcfd5d19fce86260a2e1e44f2 (diff) | |
parent | 771c577c23bac90597c685971d7297ea00f99d11 (diff) | |
download | op-kernel-dev-c049ffb35ac4a393919a001f8f468c43cb185a34.zip op-kernel-dev-c049ffb35ac4a393919a001f8f468c43cb185a34.tar.gz |
Merge 4.17-rc6 into usb-next
We want the bug fixes and this resolves the merge issues with the usbip
driver.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/powerpc/platforms/powernv/opal-nvram.c')
-rw-r--r-- | arch/powerpc/platforms/powernv/opal-nvram.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/powernv/opal-nvram.c b/arch/powerpc/platforms/powernv/opal-nvram.c index 1bceb95..5584247 100644 --- a/arch/powerpc/platforms/powernv/opal-nvram.c +++ b/arch/powerpc/platforms/powernv/opal-nvram.c @@ -44,6 +44,10 @@ static ssize_t opal_nvram_read(char *buf, size_t count, loff_t *index) return count; } +/* + * This can be called in the panic path with interrupts off, so use + * mdelay in that case. + */ static ssize_t opal_nvram_write(char *buf, size_t count, loff_t *index) { s64 rc = OPAL_BUSY; @@ -58,10 +62,16 @@ static ssize_t opal_nvram_write(char *buf, size_t count, loff_t *index) while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) { rc = opal_write_nvram(__pa(buf), count, off); if (rc == OPAL_BUSY_EVENT) { - msleep(OPAL_BUSY_DELAY_MS); + if (in_interrupt() || irqs_disabled()) + mdelay(OPAL_BUSY_DELAY_MS); + else + msleep(OPAL_BUSY_DELAY_MS); opal_poll_events(NULL); } else if (rc == OPAL_BUSY) { - msleep(OPAL_BUSY_DELAY_MS); + if (in_interrupt() || irqs_disabled()) + mdelay(OPAL_BUSY_DELAY_MS); + else + msleep(OPAL_BUSY_DELAY_MS); } } |