--- /dev/null
+From 7c689e63a847316c1b2500f86891b0a574ce7e69 Mon Sep 17 00:00:00 2001
+From: Philipp Reisner <philipp.reisner@linbit.com>
+Date: Wed, 27 Mar 2013 14:08:47 +0100
+Subject: drbd: fix for deadlock when using automatic split-brain-recovery
+
+From: Philipp Reisner <philipp.reisner@linbit.com>
+
+commit 7c689e63a847316c1b2500f86891b0a574ce7e69 upstream.
+
+With an automatic after split-brain recovery policy of
+"after-sb-1pri call-pri-lost-after-sb",
+when trying to drbd_set_role() to R_SECONDARY,
+we run into a deadlock.
+
+This was first recognized and supposedly fixed by
+2009-06-10 "Fixed a deadlock when using automatic split brain recovery when both nodes are"
+replacing drbd_set_role() with drbd_change_state() in that code-path,
+but the first hunk of that patch forgets to remove the drbd_set_role().
+
+We apparently only ever tested the "two primaries" case.
+
+Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
+Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/block/drbd/drbd_receiver.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/block/drbd/drbd_receiver.c
++++ b/drivers/block/drbd/drbd_receiver.c
+@@ -2225,7 +2225,6 @@ static int drbd_asb_recover_1p(struct dr
+ if (hg == -1 && mdev->state.role == R_PRIMARY) {
+ enum drbd_state_rv rv2;
+
+- drbd_set_role(mdev, R_SECONDARY, 0);
+ /* drbd_change_state() does not sleep while in SS_IN_TRANSIENT_STATE,
+ * we might be here in C_WF_REPORT_PARAMS which is transient.
+ * we do not need to wait for the after state change work either. */
--- /dev/null
+From 35623715818dfa720cccf99cd280dcbb4b78da23 Mon Sep 17 00:00:00 2001
+From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
+Date: Mon, 29 Apr 2013 16:21:07 -0700
+Subject: drivers/rtc/rtc-pcf2123.c: fix error return code in pcf2123_probe()
+
+From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
+
+commit 35623715818dfa720cccf99cd280dcbb4b78da23 upstream.
+
+Fix to return -ENODEV in the chip not found error handling
+case instead of 0, as done elsewhere in this function.
+
+Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
+Cc: Jingoo Han <jg1.han@samsung.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Jonghwan Choi <jhbird.choi@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/rtc/rtc-pcf2123.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/rtc/rtc-pcf2123.c
++++ b/drivers/rtc/rtc-pcf2123.c
+@@ -263,6 +263,7 @@ static int __devinit pcf2123_probe(struc
+
+ if (!(rxbuf[0] & 0x20)) {
+ dev_err(&spi->dev, "chip not found\n");
++ ret = -ENODEV;
+ goto kfree_exit;
+ }
+
--- /dev/null
+From 5c1ef59168c485318e40ba485c1eba57d81d0faa Mon Sep 17 00:00:00 2001
+From: Tomoya MORINAGA <tomoya.rohm@gmail.com>
+Date: Tue, 12 Feb 2013 11:25:33 +0900
+Subject: pch_dma: Use GFP_ATOMIC because called from interrupt context
+
+From: Tomoya MORINAGA <tomoya.rohm@gmail.com>
+
+commit 5c1ef59168c485318e40ba485c1eba57d81d0faa upstream.
+
+pdc_desc_get() is called from pd_prep_slave_sg, and the function is
+called from interrupt context(e.g. Uart driver "pch_uart.c").
+In fact, I saw kernel error message.
+So, GFP_ATOMIC must be used not GFP_NOIO.
+
+Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
+Signed-off-by: Vinod Koul <vinod.koul@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/dma/pch_dma.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/dma/pch_dma.c
++++ b/drivers/dma/pch_dma.c
+@@ -489,7 +489,7 @@ static struct pch_dma_desc *pdc_desc_get
+ dev_dbg(chan2dev(&pd_chan->chan), "scanned %d descriptors\n", i);
+
+ if (!ret) {
+- ret = pdc_alloc_desc(&pd_chan->chan, GFP_NOIO);
++ ret = pdc_alloc_desc(&pd_chan->chan, GFP_ATOMIC);
+ if (ret) {
+ spin_lock(&pd_chan->lock);
+ pd_chan->descs_allocated++;
--- /dev/null
+From romieu@fr.zoreil.com Thu May 16 18:08:15 2013
+From: Francois Romieu <romieu@fr.zoreil.com>
+Date: Fri, 10 May 2013 00:50:20 +0200
+Subject: r8169: fix vlan tag read ordering.
+To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: stable@vger.kernel.org, Hayes Wang <hayeswang@realtek.com>, "David S. Miller" <davem@davemloft.net>, Timo Teras <timo.teras@iki.fi>
+Message-ID: <20130509225020.GA28258@electric-eye.fr.zoreil.com>
+Content-Disposition: inline
+
+From: Francois Romieu <romieu@fr.zoreil.com>
+
+commit ce11ff5e5963e441feb591e76278528f876c332d upstream.
+
+Control of receive descriptor must not be returned to ethernet chipset
+before vlan tag processing is done.
+
+VLAN tag receive word is now reset both in normal and error path.
+
+Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
+Spotted-by: Timo Teras <timo.teras@iki.fi>
+Cc: Hayes Wang <hayeswang@realtek.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/r8169.c | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+--- a/drivers/net/r8169.c
++++ b/drivers/net/r8169.c
+@@ -1494,8 +1494,6 @@ static void rtl8169_rx_vlan_tag(struct R
+
+ if (opts2 & RxVlanTag)
+ __vlan_hwaccel_put_tag(skb, swab16(opts2 & 0xffff));
+-
+- desc->opts2 = 0;
+ }
+
+ static int rtl8169_gset_tbi(struct net_device *dev, struct ethtool_cmd *cmd)
+@@ -5188,7 +5186,6 @@ static int rtl8169_rx_interrupt(struct n
+ rtl8169_schedule_work(dev, rtl8169_reset_task);
+ dev->stats.rx_fifo_errors++;
+ }
+- rtl8169_mark_to_asic(desc, rx_buf_sz);
+ } else {
+ struct sk_buff *skb;
+ dma_addr_t addr = le64_to_cpu(desc->addr);
+@@ -5202,16 +5199,14 @@ static int rtl8169_rx_interrupt(struct n
+ if (unlikely(rtl8169_fragmented_frame(status))) {
+ dev->stats.rx_dropped++;
+ dev->stats.rx_length_errors++;
+- rtl8169_mark_to_asic(desc, rx_buf_sz);
+- continue;
++ goto release_descriptor;
+ }
+
+ skb = rtl8169_try_rx_copy(tp->Rx_databuff[entry],
+ tp, pkt_size, addr);
+- rtl8169_mark_to_asic(desc, rx_buf_sz);
+ if (!skb) {
+ dev->stats.rx_dropped++;
+- continue;
++ goto release_descriptor;
+ }
+
+ rtl8169_rx_csum(skb, status);
+@@ -5225,6 +5220,10 @@ static int rtl8169_rx_interrupt(struct n
+ dev->stats.rx_bytes += pkt_size;
+ dev->stats.rx_packets++;
+ }
++release_descriptor:
++ desc->opts2 = 0;
++ wmb();
++ rtl8169_mark_to_asic(desc, rx_buf_sz);
+ }
+
+ count = cur_rx - tp->cur_rx;
macvlan-fix-passthru-mode-race-between-dev-removal-and-rx-path.patch
ipv6-do-not-clear-pinet6-field.patch
xfrm6-release-dev-before-returning-error.patch
+pch_dma-use-gfp_atomic-because-called-from-interrupt-context.patch
+r8169-fix-vlan-tag-read-ordering.patch
+drbd-fix-for-deadlock-when-using-automatic-split-brain-recovery.patch
+drivers-rtc-rtc-pcf2123.c-fix-error-return-code-in-pcf2123_probe.patch