diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-09-17 18:01:14 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-09-17 18:01:14 -0400 |
commit | 08077ca849ced0306ce842ed597b0d80434a8bf0 (patch) | |
tree | a1c7b602fc2f945dc65493a06042a7dc0d09d85a /drivers | |
parent | 2ade0b7f795293ca0b11c1bf3d2f99ed33e04a2a (diff) | |
parent | f14851af0ebb32745c6c5a2e400aa0549f9d20df (diff) |
Merge branch 'akpm' (Andrew's patch-bomb)
Merge fixes from Andrew Morton:
"13 patches. 12 are fixes and one is a little preparatory thing for
Andi."
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (13 commits)
memory hotplug: fix section info double registration bug
mm/page_alloc: fix the page address of higher page's buddy calculation
drivers/rtc/rtc-twl.c: ensure all interrupts are disabled during probe
compiler.h: add __visible
pid-namespace: limit value of ns_last_pid to (0, max_pid)
include/net/sock.h: squelch compiler warning in sk_rmem_schedule()
slub: consider pfmemalloc_match() in get_partial_node()
slab: fix starting index for finding another object
slab: do ClearSlabPfmemalloc() for all pages of slab
nbd: clear waiting_queue on shutdown
MAINTAINERS: fix TXT maintainer list and source repo path
mm/ia64: fix a memory block size bug
memory hotplug: reset pgdat->kswapd to NULL if creating kernel thread fails
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/nbd.c | 9 | ||||
-rw-r--r-- | drivers/rtc/rtc-twl.c | 5 |
2 files changed, 14 insertions, 0 deletions
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index d07c9f7fded6..0c03411c59eb 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c | |||
@@ -449,6 +449,14 @@ static void nbd_clear_que(struct nbd_device *nbd) | |||
449 | req->errors++; | 449 | req->errors++; |
450 | nbd_end_request(req); | 450 | nbd_end_request(req); |
451 | } | 451 | } |
452 | |||
453 | while (!list_empty(&nbd->waiting_queue)) { | ||
454 | req = list_entry(nbd->waiting_queue.next, struct request, | ||
455 | queuelist); | ||
456 | list_del_init(&req->queuelist); | ||
457 | req->errors++; | ||
458 | nbd_end_request(req); | ||
459 | } | ||
452 | } | 460 | } |
453 | 461 | ||
454 | 462 | ||
@@ -598,6 +606,7 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd, | |||
598 | nbd->file = NULL; | 606 | nbd->file = NULL; |
599 | nbd_clear_que(nbd); | 607 | nbd_clear_que(nbd); |
600 | BUG_ON(!list_empty(&nbd->queue_head)); | 608 | BUG_ON(!list_empty(&nbd->queue_head)); |
609 | BUG_ON(!list_empty(&nbd->waiting_queue)); | ||
601 | if (file) | 610 | if (file) |
602 | fput(file); | 611 | fput(file); |
603 | return 0; | 612 | return 0; |
diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c index c5d06fe83bba..9277d945bf48 100644 --- a/drivers/rtc/rtc-twl.c +++ b/drivers/rtc/rtc-twl.c | |||
@@ -495,6 +495,11 @@ static int __devinit twl_rtc_probe(struct platform_device *pdev) | |||
495 | if (ret < 0) | 495 | if (ret < 0) |
496 | goto out1; | 496 | goto out1; |
497 | 497 | ||
498 | /* ensure interrupts are disabled, bootloaders can be strange */ | ||
499 | ret = twl_rtc_write_u8(0, REG_RTC_INTERRUPTS_REG); | ||
500 | if (ret < 0) | ||
501 | dev_warn(&pdev->dev, "unable to disable interrupt\n"); | ||
502 | |||
498 | /* init cached IRQ enable bits */ | 503 | /* init cached IRQ enable bits */ |
499 | ret = twl_rtc_read_u8(&rtc_irq_bits, REG_RTC_INTERRUPTS_REG); | 504 | ret = twl_rtc_read_u8(&rtc_irq_bits, REG_RTC_INTERRUPTS_REG); |
500 | if (ret < 0) | 505 | if (ret < 0) |