From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sj-iport-6.cisco.com (sj-iport-6.cisco.com [171.71.176.117]) by ozlabs.org (Postfix) with ESMTP id 1075DDDDFE for ; Mon, 10 Dec 2007 10:22:44 +1100 (EST) To: Arnd Bergmann Subject: Re: [PATCH] IB/ehca: Serialize HCA-related hCalls on POWER5 References: <200712061607.20004.fenkes@de.ibm.com> <200712061648.24806.arnd@arndb.de> <200712071058.38416.arnd@arndb.de> From: Roland Dreier Date: Sun, 09 Dec 2007 15:22:39 -0800 In-Reply-To: <200712071058.38416.arnd@arndb.de> (Arnd Bergmann's message of "Fri, 7 Dec 2007 10:58:37 +0100") Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Joachim Fenkes , LKML , OF-EWG , linuxppc-dev@ozlabs.org, Christoph Raisch , Marcus Eder , OF-General , Stefan Roscher List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , > I think it needs some more inspection. The msleep in there is only called > for hcalls that return H_IS_LONG_BUSY(). In theory, you can call > ehca_plpar_hcall_norets() from inside an interrupt handler if the > hcall in question never returns long busy. Fair enough... according to Documentation/infiniband/core_locking.txt, the only driver methods that cannot sleep are: create_ah modify_ah query_ah destroy_ah bind_mw post_send post_recv poll_cq req_notify_cq map_phys_fmr and I don't think ehca does an hcall from any of those. Of course there might be other driver-internal code paths that I don't know about. Maybe do a quick audit and then stick might_sleep() in the hcall functions to catch any mistakes? - R.