From patchwork Thu Dec 7 17:40:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Paul E. McKenney" X-Patchwork-Id: 10100531 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id B146C602BF for ; Thu, 7 Dec 2017 17:41:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A17A028590 for ; Thu, 7 Dec 2017 17:41:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 965D828599; Thu, 7 Dec 2017 17:41:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 22D4B28590 for ; Thu, 7 Dec 2017 17:41:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753433AbdLGRks (ORCPT ); Thu, 7 Dec 2017 12:40:48 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:42652 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753330AbdLGRkp (ORCPT ); Thu, 7 Dec 2017 12:40:45 -0500 Received: from pps.filterd (m0098409.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id vB7HdHdh104877 for ; Thu, 7 Dec 2017 12:40:45 -0500 Received: from e11.ny.us.ibm.com (e11.ny.us.ibm.com [129.33.205.201]) by mx0a-001b2d01.pphosted.com with ESMTP id 2eq85hew66-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Thu, 07 Dec 2017 12:40:44 -0500 Received: from localhost by e11.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 7 Dec 2017 12:40:43 -0500 Received: from b01cxnp23032.gho.pok.ibm.com (9.57.198.27) by e11.ny.us.ibm.com (146.89.104.198) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 7 Dec 2017 12:40:38 -0500 Received: from b01ledav003.gho.pok.ibm.com (b01ledav003.gho.pok.ibm.com [9.57.199.108]) by b01cxnp23032.gho.pok.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id vB7Hecb542926320; Thu, 7 Dec 2017 17:40:38 GMT Received: from b01ledav003.gho.pok.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4007FB2046; Thu, 7 Dec 2017 12:37:45 -0500 (EST) Received: from paulmck-ThinkPad-W541 (unknown [9.70.82.60]) by b01ledav003.gho.pok.ibm.com (Postfix) with ESMTP id E1177B204D; Thu, 7 Dec 2017 12:37:44 -0500 (EST) Received: by paulmck-ThinkPad-W541 (Postfix, from userid 1000) id 4A7E316C2DCF; Thu, 7 Dec 2017 09:40:38 -0800 (PST) Date: Thu, 7 Dec 2017 09:40:38 -0800 From: "Paul E. McKenney" To: Bart Van Assche Cc: "sfr@canb.auug.org.au" , "josh@joshtriplett.org" , "linux-kernel@vger.kernel.org" , "linux-scsi@vger.kernel.org" , "linux-next@vger.kernel.org" , "martin.petersen@oracle.com" , "ptikhomirov@virtuozzo.com" Subject: Re: linux-next: build failure after merge of the scsi-mkp tree Reply-To: paulmck@linux.vnet.ibm.com References: <20171207145728.57cd9ac4@canb.auug.org.au> <1512619169.3298.3.camel@wdc.com> <20171207152521.0036b131@canb.auug.org.au> <20171207044222.GK7829@linux.vnet.ibm.com> <1512667802.2624.20.camel@wdc.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1512667802.2624.20.camel@wdc.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-TM-AS-GCONF: 00 x-cbid: 17120717-2213-0000-0000-000002476D7E X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00008167; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000244; SDB=6.00956827; UDB=6.00483711; IPR=6.00736858; BA=6.00005729; NDR=6.00000001; ZLA=6.00000005; ZF=6.00000009; ZB=6.00000000; ZP=6.00000000; ZH=6.00000000; ZU=6.00000002; MB=3.00018408; XFM=3.00000015; UTC=2017-12-07 17:40:41 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17120717-2214-0000-0000-00005860BDAD Message-Id: <20171207174038.GQ7829@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-12-07_07:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=2 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1709140000 definitions=main-1712070259 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On Thu, Dec 07, 2017 at 05:30:03PM +0000, Bart Van Assche wrote: > On Wed, 2017-12-06 at 20:42 -0800, Paul E. McKenney wrote: > > On Thu, Dec 07, 2017 at 03:25:21PM +1100, Stephen Rothwell wrote: > > > On Thu, 7 Dec 2017 03:59:30 +0000 Bart Van Assche wrote: [ . . . ] > > commit cde4691a3a4591e7355295dd62610e3262159002 > > Author: Paul E. McKenney > > Date: Wed Dec 6 20:39:38 2017 -0800 > > > > rcu: Export init_rcu_head() and destroy_rcu_head() to GPL modules > > > > Use of init_rcu_head() and destroy_rcu_head() from modules results in > > the following build-time error: > > > > ERROR: "init_rcu_head" [drivers/scsi/scsi_mod.ko] undefined! > > ERROR: "destroy_rcu_head" [drivers/scsi/scsi_mod.ko] undefined! > > > > This commit therefore adds EXPORT_SYMBOL_GPL() for each to allow them > > to be used by GPL-licensed kernel modules. > > > > Reported-by: Bart Van Assche > > Reported-by: Stephen Rothwell > > Signed-off-by: Paul E. McKenney > > > > diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c > > index 8d591d8411fe..4c4d26e9a67b 100644 > > --- a/kernel/rcu/update.c > > +++ b/kernel/rcu/update.c > > @@ -422,11 +422,13 @@ void init_rcu_head(struct rcu_head *head) > > { > > debug_object_init(head, &rcuhead_debug_descr); > > } > > +EXPORT_SYMBOL_GPL(init_rcu_head); > > > > void destroy_rcu_head(struct rcu_head *head) > > { > > debug_object_free(head, &rcuhead_debug_descr); > > } > > +EXPORT_SYMBOL_GPL(destroy_rcu_head); > > > > static bool rcuhead_is_static_object(void *addr) > > { > > (+linux-scsi) > > Hello Paul, > > How about changing the commit message into "... fixes a build failure with > CONFIG_DEBUG_OBJECTS_RCU_HEAD=y"? Otherwise the above patch looks fine to me > and fixes the reported build failure on my setup. I have updated it as shown below. > However, what's not clear to me is through which tree this patch should be > sent to Linus? Should the above patch be sent as a v4.15-rc fix or should > Martin perhaps queue it in his tree for v4.16-rc1? I have to defer to you guys on that one. Left to myself, I will just push it into the next merge window (as opposed to using my normal process, which at this point would get it into the one following). So please let me know how you would like to proceed. Thanx, Paul ------------------------------------------------------------------------ commit 193dffdf4354f14b4f3369a85128817e5ba74e58 Author: Paul E. McKenney Date: Wed Dec 6 20:39:38 2017 -0800 rcu: Export init_rcu_head() and destroy_rcu_head() to GPL modules Use of init_rcu_head() and destroy_rcu_head() from modules results in the following build-time error with CONFIG_DEBUG_OBJECTS_RCU_HEAD=y: ERROR: "init_rcu_head" [drivers/scsi/scsi_mod.ko] undefined! ERROR: "destroy_rcu_head" [drivers/scsi/scsi_mod.ko] undefined! This commit therefore adds EXPORT_SYMBOL_GPL() for each to allow them to be used by GPL-licensed kernel modules. Reported-by: Bart Van Assche Reported-by: Stephen Rothwell Signed-off-by: Paul E. McKenney diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c index 8d591d8411fe..4c4d26e9a67b 100644 --- a/kernel/rcu/update.c +++ b/kernel/rcu/update.c @@ -422,11 +422,13 @@ void init_rcu_head(struct rcu_head *head) { debug_object_init(head, &rcuhead_debug_descr); } +EXPORT_SYMBOL_GPL(init_rcu_head); void destroy_rcu_head(struct rcu_head *head) { debug_object_free(head, &rcuhead_debug_descr); } +EXPORT_SYMBOL_GPL(destroy_rcu_head); static bool rcuhead_is_static_object(void *addr) {