From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <505AFACC.1050802@siemens.com> Date: Thu, 20 Sep 2012 13:15:24 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <505AF205.6010206@siemens.com> <505AF49D.6020905@xenomai.org> <505AF641.6030604@siemens.com> <505AF687.9010002@siemens.com> In-Reply-To: <505AF687.9010002@siemens.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai] [PATCH] Revert "ipipe: ipipe_request_irq(), ipipe_free_irq() are root-only services" List-Id: Discussions about the Xenomai project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Philippe Gerum Cc: "Mauerer, Wolfgang" , Xenomai On 2012-09-20 12:57, Jan Kiszka wrote: > On 2012-09-20 12:56, Jan Kiszka wrote: >> On 2012-09-20 12:49, Philippe Gerum wrote: >>> On 09/20/2012 12:37 PM, Jan Kiszka wrote: >>>> This reverts commit 073ff1e8045d0311b8cf390687c0ba3619681672. >>>> >>>> Both service are NOT just root-only services. E.g., rtdm_irq_request >>>> requires by specification support also over non-Linux contexts. >>> >>> Nack. We can't run the enable code for MSIs over non-root, and >>> that code typically follows the irq request. Besides, we want to mask >>> the source upon irq free to handle the SMP case properly, which we could >>> not do from non-root with MSIs. >>> >>> So either we have both request+enable and free usable over non-root, or >>> there is no point. >> >> OK, I get the point with legacy MSI. Then we have two other bugs to solve: >> - in I-pipe as it holds a hardened spin lock across enable/disable (of >> MSIs) I think this bug may only manifest over ARM as that arch does enable/disable_irq() inside __ipipe_enable/disable_irqdesc - unless something prevents that enabling will ever happen for interrupts that need Linux locks to work. Is that assured? >> - in Xenomai 2.6 (at least, didn't check forge) as it calls with a >> hardened spin lock held into ipipe_virtualize_irq This problem is something I vaguely recall we discussed before already in the past. I think there was no good solution for the Xenomai 2 architecture. In this light, let's remove those checks nevertheless. Enabling/disabling the IRQ are separate calls, and those should be instrumented as those cause the restriction. > > Sorry, three bugs: > - in the RTDM spec as it always allowed rtdm_irq_request over RT task > contexts Changing the spec and adding a runtime check will likely be no issue. No sane driver should have made use of that option. I will file a patch. Jan -- Siemens AG, Corporate Technology, CT RTC ITP SDP-DE Corporate Competence Center Embedded Linux