diff for duplicates of <20130319133928.GE3137@localhost> diff --git a/a/1.txt b/N1/1.txt index c202f05..30ae705 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -21,57 +21,6 @@ Please note the attached patch is not ready for mainline inclusion, as I said Gregory will submit a cleaner version soon. -- -Ezequiel Garc?a, Free Electrons +Ezequiel García, Free Electrons Embedded Linux, Kernel and Android Engineering http://free-electrons.com --------------- next part -------------- ->From 03080b4e459b103b97b658789658f118053de522 Mon Sep 17 00:00:00 2001 -From: Gregory CLEMENT <gregory.clement@free-electrons.com> -Date: Sat, 9 Feb 2013 22:07:54 +0100 -Subject: [PATCH] net: mvneta: convert to percpu interrupt - -Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> ---- - drivers/net/ethernet/marvell/mvneta.c | 12 +++++++++--- - 1 files changed, 9 insertions(+), 3 deletions(-) - -diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c -index b6025c3..7f63dd4 100644 ---- a/drivers/net/ethernet/marvell/mvneta.c -+++ b/drivers/net/ethernet/marvell/mvneta.c -@@ -1800,7 +1800,7 @@ static void mvneta_set_rx_mode(struct net_device *dev) - /* Interrupt handling - the callback for request_irq() */ - static irqreturn_t mvneta_isr(int irq, void *dev_id) - { -- struct mvneta_port *pp = (struct mvneta_port *)dev_id; -+ struct mvneta_port *pp = *(struct mvneta_port **)dev_id; - - /* Mask all interrupts */ - mvreg_write(pp, MVNETA_INTR_NEW_MASK, 0); -@@ -2368,6 +2368,7 @@ static void mvneta_mdio_remove(struct mvneta_port *pp) - phy_disconnect(pp->phy_dev); - pp->phy_dev = NULL; - } -+static struct mvneta_port __percpu **percpu_pp; - - static int mvneta_open(struct net_device *dev) - { -@@ -2386,9 +2387,14 @@ static int mvneta_open(struct net_device *dev) - if (ret) - goto err_cleanup_rxqs; - -+ percpu_pp = alloc_percpu(struct mvneta_port *); -+ *__this_cpu_ptr(percpu_pp) = pp; -+ - /* Connect to port interrupt line */ -- ret = request_irq(pp->dev->irq, mvneta_isr, 0, -- MVNETA_DRIVER_NAME, pp); -+ ret = request_percpu_irq(pp->dev->irq, mvneta_isr, -+ MVNETA_DRIVER_NAME, percpu_pp); -+ enable_percpu_irq(pp->dev->irq, 0); -+ - if (ret) { - netdev_err(pp->dev, "cannot request irq %d\n", pp->dev->irq); - goto err_cleanup_txqs; --- -1.7.8.6 diff --git a/N1/2.hdr b/N1/2.hdr new file mode 100644 index 0000000..6e47efd --- /dev/null +++ b/N1/2.hdr @@ -0,0 +1,2 @@ +Content-Type: text/plain; charset=utf-8 +Content-Disposition: attachment; filename="0001-net-mvneta-convert-to-percpu-interrupt.patch" diff --git a/N1/2.txt b/N1/2.txt new file mode 100644 index 0000000..7794bed --- /dev/null +++ b/N1/2.txt @@ -0,0 +1,50 @@ +>From 03080b4e459b103b97b658789658f118053de522 Mon Sep 17 00:00:00 2001 +From: Gregory CLEMENT <gregory.clement@free-electrons.com> +Date: Sat, 9 Feb 2013 22:07:54 +0100 +Subject: [PATCH] net: mvneta: convert to percpu interrupt + +Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> +--- + drivers/net/ethernet/marvell/mvneta.c | 12 +++++++++--- + 1 files changed, 9 insertions(+), 3 deletions(-) + +diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c +index b6025c3..7f63dd4 100644 +--- a/drivers/net/ethernet/marvell/mvneta.c ++++ b/drivers/net/ethernet/marvell/mvneta.c +@@ -1800,7 +1800,7 @@ static void mvneta_set_rx_mode(struct net_device *dev) + /* Interrupt handling - the callback for request_irq() */ + static irqreturn_t mvneta_isr(int irq, void *dev_id) + { +- struct mvneta_port *pp = (struct mvneta_port *)dev_id; ++ struct mvneta_port *pp = *(struct mvneta_port **)dev_id; + + /* Mask all interrupts */ + mvreg_write(pp, MVNETA_INTR_NEW_MASK, 0); +@@ -2368,6 +2368,7 @@ static void mvneta_mdio_remove(struct mvneta_port *pp) + phy_disconnect(pp->phy_dev); + pp->phy_dev = NULL; + } ++static struct mvneta_port __percpu **percpu_pp; + + static int mvneta_open(struct net_device *dev) + { +@@ -2386,9 +2387,14 @@ static int mvneta_open(struct net_device *dev) + if (ret) + goto err_cleanup_rxqs; + ++ percpu_pp = alloc_percpu(struct mvneta_port *); ++ *__this_cpu_ptr(percpu_pp) = pp; ++ + /* Connect to port interrupt line */ +- ret = request_irq(pp->dev->irq, mvneta_isr, 0, +- MVNETA_DRIVER_NAME, pp); ++ ret = request_percpu_irq(pp->dev->irq, mvneta_isr, ++ MVNETA_DRIVER_NAME, percpu_pp); ++ enable_percpu_irq(pp->dev->irq, 0); ++ + if (ret) { + netdev_err(pp->dev, "cannot request irq %d\n", pp->dev->irq); + goto err_cleanup_txqs; +-- +1.7.8.6 diff --git a/a/content_digest b/N1/content_digest index 958b48d..e9d7dfe 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,9 +1,16 @@ "ref\051486445.8040506@hitachi.com\0" - "From\0ezequiel.garcia@free-electrons.com (Ezequiel Garcia)\0" - "Subject\0[BUG][mvebu] mvneta: cannot request irq 25 on openblocks-ax3\0" + "From\0Ezequiel Garcia <ezequiel.garcia@free-electrons.com>\0" + "Subject\0Re: [BUG][mvebu] mvneta: cannot request irq 25 on openblocks-ax3\0" "Date\0Tue, 19 Mar 2013 10:39:30 -0300\0" - "To\0linux-arm-kernel@lists.infradead.org\0" - "\00:1\0" + "To\0Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>\0" + "Cc\0linux-arm-kernel@lists.infradead.org" + thomas.petazzoni@free-electrons.com + Jason Cooper <jason@lakedaemon.net> + netdev@vger.kernel.org + linux-kernel@vger.kernel.org + yrl.pp-manager.tt@hitachi.com <yrl.pp-manager.tt@hitachi.com> + " Gregory Clement <gregory.clement@free-electrons.com>\0" + "\01:1\0" "b\0" "Hi Masami,\n" "\n" @@ -28,10 +35,12 @@ "as I said Gregory will submit a cleaner version soon.\n" "\n" "-- \n" - "Ezequiel Garc?a, Free Electrons\n" + "Ezequiel Garc\303\255a, Free Electrons\n" "Embedded Linux, Kernel and Android Engineering\n" - "http://free-electrons.com\n" - "-------------- next part --------------\n" + http://free-electrons.com + "\01:2\0" + "fn\00001-net-mvneta-convert-to-percpu-interrupt.patch\0" + "b\0" ">From 03080b4e459b103b97b658789658f118053de522 Mon Sep 17 00:00:00 2001\n" "From: Gregory CLEMENT <gregory.clement@free-electrons.com>\n" "Date: Sat, 9 Feb 2013 22:07:54 +0100\n" @@ -83,4 +92,4 @@ "-- \n" 1.7.8.6 -dd623788c6185e76f1ef2fd4024df735a5876eda693bc124fce6417f3936d0c2 +93daf51d3e030109d3281836fb53e80a96e58ac4b7913e717332b08310f2958d
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.