{"id":811,"url":"http://patchwork.ozlabs.org/api/1.0/patches/811/?format=json","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/1.0/projects/2/?format=json","name":"Linux PPC development","link_name":"linuxppc-dev","list_id":"linuxppc-dev.lists.ozlabs.org","list_email":"linuxppc-dev@lists.ozlabs.org","web_url":"https://github.com/linuxppc/wiki/wiki","scm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git","webscm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/"},"msgid":"<9e4733910809211634u5b37e297pe8503f08de4f19a8@mail.gmail.com>","date":"2008-09-21T23:34:37","name":"solution to printk() blocking interrupts?","commit_ref":null,"pull_url":null,"state":"superseded","archived":true,"hash":"4ed0baf64565cb1178bd1ceb242a096ba787a095","submitter":{"id":375,"url":"http://patchwork.ozlabs.org/api/1.0/people/375/?format=json","name":"jonsmirl@gmail.com","email":"jonsmirl@gmail.com"},"delegate":{"id":8,"url":"http://patchwork.ozlabs.org/api/1.0/users/8/?format=json","username":"glikely","first_name":"Grant","last_name":"Likely","email":"grant.likely@secretlab.ca"},"mbox":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/9e4733910809211634u5b37e297pe8503f08de4f19a8@mail.gmail.com/mbox/","series":[],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/811/checks/","tags":{},"headers":{"Return-Path":"<linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["patchwork-incoming@ozlabs.org","Linuxppc-dev@ozlabs.org"],"Delivered-To":["patchwork-incoming@ozlabs.org","Linuxppc-dev@ozlabs.org"],"Received":["from ozlabs.org (localhost [127.0.0.1])\n\tby ozlabs.org (Postfix) with ESMTP id E11D2DE077\n\tfor <patchwork-incoming@ozlabs.org>;\n\tMon, 22 Sep 2008 09:34:53 +1000 (EST)","from qw-out-2122.google.com (qw-out-2122.google.com [74.125.92.26])\n\tby ozlabs.org (Postfix) with ESMTP id 98842DDE1D\n\tfor <Linuxppc-dev@ozlabs.org>; Mon, 22 Sep 2008 09:34:38 +1000 (EST)","by qw-out-2122.google.com with SMTP id 9so117449qwb.15\n\tfor <Linuxppc-dev@ozlabs.org>; Sun, 21 Sep 2008 16:34:37 -0700 (PDT)","by 10.215.14.10 with SMTP id r10mr2066299qai.91.1222040077356;\n\tSun, 21 Sep 2008 16:34:37 -0700 (PDT)","by 10.214.10.19 with HTTP; Sun, 21 Sep 2008 16:34:37 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; \n\th=domainkey-signature:received:received:message-id:date:from:to\n\t:subject:cc:in-reply-to:mime-version:content-type\n\t:content-transfer-encoding:content-disposition:references;\n\tbh=ypVUvRihMypSZlJUcH6BKx6CmraF+ZgxLbeO/4LAuHE=;\n\tb=CmYgUf3/GHdpkuOHTArvtMuSQdQs5cc1bB9BmTP39QGo+P+nA7d8V2JZBAEed/xU6q\n\tLp9TeX+pK5a6ZtVol9OjQGFPBYENAFqnxeOAfMeW0TaUZeaninj02Sl0ZdoLlP4zFuqP\n\ttUAyTR43uxSfKpHr8Ryyd0E9tsRIcuM7fvtAc=","DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;\n\th=message-id:date:from:to:subject:cc:in-reply-to:mime-version\n\t:content-type:content-transfer-encoding:content-disposition\n\t:references;\n\tb=TjKuVqoEdWT1pOCOcDWY4xgWRlKeIzjczsIX3yxwsOLZrRkYkkzYORYbLxbszt9FRT\n\tPpD5jJ960V+TDIAFUKNrA2OUml8ypumaGy2RU01dgzifv3buhp/fPu51nSDISsU3M8oc\n\tO6gIQgNrzbW/z/3fj38C6eQ1vSEC7lVOl6rLg=","Message-ID":"<9e4733910809211634u5b37e297pe8503f08de4f19a8@mail.gmail.com>","Date":"Sun, 21 Sep 2008 19:34:37 -0400","From":"\"Jon Smirl\" <jonsmirl@gmail.com>","To":"\"Sergei Shtylyov\" <sshtylyov@ru.mvista.com>","Subject":"Re: solution to printk() blocking interrupts?","In-Reply-To":"<48D6C8F0.4060808@ru.mvista.com>","MIME-Version":"1.0","Content-Disposition":"inline","References":"<9e4733910809211353k1f06fb5bi219c124d0c44b47a@mail.gmail.com>\n\t<9e4733910809211443l5638887aw856377d39fcca85c@mail.gmail.com>\n\t<48D6C8F0.4060808@ru.mvista.com>","Cc":"linuxppc-dev <Linuxppc-dev@ozlabs.org>","X-BeenThere":"linuxppc-dev@ozlabs.org","X-Mailman-Version":"2.1.11","Precedence":"list","List-Id":"Linux on PowerPC Developers Mail List <linuxppc-dev.ozlabs.org>","List-Unsubscribe":"<https://ozlabs.org/mailman/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@ozlabs.org?subject=unsubscribe>","List-Archive":"<http://ozlabs.org/pipermail/linuxppc-dev>","List-Post":"<mailto:linuxppc-dev@ozlabs.org>","List-Help":"<mailto:linuxppc-dev-request@ozlabs.org?subject=help>","List-Subscribe":"<https://ozlabs.org/mailman/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@ozlabs.org?subject=subscribe>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@ozlabs.org","Errors-To":"linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@ozlabs.org"},"content":"On Sun, Sep 21, 2008 at 6:21 PM, Sergei Shtylyov\n<sshtylyov@ru.mvista.com> wrote:\n>  Implementing the poll_controller() method in the network driver is usually\n> staightforward.\n\nGood tip, the simple implementation worked.\n\nWhat controls this? \"carrier detect appears untrustworthy, waiting 4 seconds\"\nGet that fixed and this patch could be useful,\n\nroot@phyCORE-MPC5200B-tiny:~ dmesg | grep netconsole\nKernel command line: console=ttyPSC0,115200 rw debug root=/dev/nfs\nip=dhcp nfsroot=192.168.1.4:/home/OSELAS.BSP-Phytec-phyCORE-MPC5200B-tiny-6/root,v3,tcp\nnetconsole=6666@192.168.1.11/eth0,514@192.168.1.4/00:19:d1:e4:0f:8d\nnetconsole: local port 6666\nnetconsole: local IP 192.168.1.11\nnetconsole: interface eth0\nnetconsole: remote port 514\nnetconsole: remote IP 192.168.1.4\nnetconsole: remote ethernet address 00:19:d1:e4:0f:8d\nnetconsole: device eth0 not up yet, forcing it\nnetconsole: carrier detect appears untrustworthy, waiting 4 seconds\nnetconsole: network logging started\nroot@phyCORE-MPC5200B-tiny:~\n\n\n\n static irqreturn_t mpc52xx_fec_tx_interrupt(int irq, void *dev_id)\n@@ -926,6 +936,9 @@ mpc52xx_fec_probe(struct of_device *op, const\nstruct of_device_id *match)\n        ndev->tx_timeout        = mpc52xx_fec_tx_timeout;\n        ndev->watchdog_timeo    = FEC_WATCHDOG_TIMEOUT;\n        ndev->base_addr         = mem.start;\n+#ifdef CONFIG_NET_POLL_CONTROLLER\n+       ndev->poll_controller = mpc52xx_fec_poll_controller;\n+#endif\n\n        priv->t_irq = priv->r_irq = ndev->irq = NO_IRQ; /* IRQ are\nfree for now */","diff":"diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c\nindex 4e4f683..72541b5 100644\n--- a/drivers/net/fec_mpc52xx.c\n+++ b/drivers/net/fec_mpc52xx.c\n@@ -401,6 +401,16 @@ static int mpc52xx_fec_hard_start_xmit(struct\nsk_buff *skb, struct net_device *d\n        return 0;\n }\n\n+#ifdef CONFIG_NET_POLL_CONTROLLER\n+static void mpc52xx_fec_poll_controller(struct net_device *dev)\n+{\n+        disable_irq(dev->irq);\n+        mpc52xx_fec_tx_interrupt(dev->irq, dev);\n+        enable_irq(dev->irq);\n+}\n+#endif\n+\n+\n /* This handles BestComm transmit task interrupts\n  */\n","prefixes":[]}