diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2018-05-04 16:24:45 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-06-05 16:26:47 -0400 |
commit | ce1e518190ea71d1ecf1a91a8b0794ba9bd78e89 (patch) | |
tree | 829b73812093465b6af318d10e41d86aa328d864 /drivers/ide | |
parent | 56f0ddadcea9dc264f1c8eed6cc984071b141554 (diff) | |
download | linux-stable-ce1e518190ea71d1ecf1a91a8b0794ba9bd78e89.tar.gz linux-stable-ce1e518190ea71d1ecf1a91a8b0794ba9bd78e89.tar.bz2 linux-stable-ce1e518190ea71d1ecf1a91a8b0794ba9bd78e89.zip |
ide: don't disable interrupts during kmap_atomic()
ide_pio_bytes() disables interrupts around kmap_atomic(). This is a
leftover from the old kmap_atomic() implementation which relied on fixed
mapping slots, so the caller had to make sure that the same slot could not
be reused from an interrupting context.
kmap_atomic() was changed to dynamic slots long ago and commit 1ec9c5ddc17a
("include/linux/highmem.h: remove the second argument of k[un]map_atomic()")
removed the slot assignements, but the callers were not checked for now
redundant interrupt disabling.
Remove the conditional interrupt disable.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/ide')
-rw-r--r-- | drivers/ide/ide-taskfile.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index c034cd965831..14bdab15a454 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c @@ -237,7 +237,6 @@ void ide_pio_bytes(ide_drive_t *drive, struct ide_cmd *cmd, while (len) { unsigned nr_bytes = min(len, cursg->length - cmd->cursg_ofs); - int page_is_high; page = sg_page(cursg); offset = cursg->offset + cmd->cursg_ofs; @@ -248,10 +247,6 @@ void ide_pio_bytes(ide_drive_t *drive, struct ide_cmd *cmd, nr_bytes = min_t(unsigned, nr_bytes, (PAGE_SIZE - offset)); - page_is_high = PageHighMem(page); - if (page_is_high) - local_irq_save(flags); - buf = kmap_atomic(page) + offset; cmd->nleft -= nr_bytes; @@ -270,9 +265,6 @@ void ide_pio_bytes(ide_drive_t *drive, struct ide_cmd *cmd, kunmap_atomic(buf); - if (page_is_high) - local_irq_restore(flags); - len -= nr_bytes; } } |