diff options
author | Jun Tian <jun.j.tian@intel.com> | 2014-05-12 11:54:57 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-05-15 16:19:00 -0400 |
commit | 25c72c786cb571cfdf39a31f9f64d143d8623a7a (patch) | |
tree | d8f77674c5d8f6bb12cbf6a8e9615b3d0e756379 | |
parent | 49a75c444fcf07fdde2ec74428b6b1b9ff1c6b15 (diff) |
goldfish: fix kernel panic when using multiple adb connection
When using multiple adb on 64 bit kernel to transfer data,
the goldfish pipe interrupt will crash the kernel.
Signed-off-by: Jun Tian <jun.j.tian@intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/platform/goldfish/goldfish_pipe.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/platform/goldfish/goldfish_pipe.c b/drivers/platform/goldfish/goldfish_pipe.c index f33c6e0e7fb0..670b9b94f74b 100644 --- a/drivers/platform/goldfish/goldfish_pipe.c +++ b/drivers/platform/goldfish/goldfish_pipe.c | |||
@@ -469,6 +469,9 @@ static irqreturn_t goldfish_pipe_interrupt(int irq, void *dev_id) | |||
469 | 469 | ||
470 | #ifdef CONFIG_64BIT | 470 | #ifdef CONFIG_64BIT |
471 | channel = (u64)readl(dev->base + PIPE_REG_CHANNEL_HIGH) << 32; | 471 | channel = (u64)readl(dev->base + PIPE_REG_CHANNEL_HIGH) << 32; |
472 | |||
473 | if (channel == 0) | ||
474 | break; | ||
472 | #endif | 475 | #endif |
473 | channel |= readl(dev->base + PIPE_REG_CHANNEL); | 476 | channel |= readl(dev->base + PIPE_REG_CHANNEL); |
474 | 477 | ||