From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753482AbdBTNgC convert rfc822-to-8bit (ORCPT ); Mon, 20 Feb 2017 08:36:02 -0500 Received: from mga01.intel.com ([192.55.52.88]:7242 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753374AbdBTNf4 (ORCPT ); Mon, 20 Feb 2017 08:35:56 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,186,1484035200"; d="scan'208";a="1132372919" From: "Reshetova, Elena" To: Heiko Carstens CC: "linux-kernel@vger.kernel.org" , "linux-edac@vger.kernel.org" , "x86@kernel.org" , "sparclinux@vger.kernel.org" , "linux-s390@vger.kernel.org" , "kvm@vger.kernel.org" , "peterz@infradead.org" , "gregkh@linuxfoundation.org" , "davem@davemloft.net" , "tglx@linutronix.de" , "mingo@redhat.com" , "Luck, Tony" , "hpa@zytor.com" , Hans Liljestrand , Kees Cook , David Windsor Subject: RE: [PATCH 1/4] s390: convert debug_info.ref_count from atomic_t to refcount_t Thread-Topic: [PATCH 1/4] s390: convert debug_info.ref_count from atomic_t to refcount_t Thread-Index: AQHSi2l1cEehGiFGbUiXnvGvpuUBzKFx4noAgAACMlA= Date: Mon, 20 Feb 2017 13:35:36 +0000 Message-ID: <2236FBA76BA1254E88B949DDB74E612B41C4DA17@IRSMSX102.ger.corp.intel.com> References: <1487588781-15123-1-git-send-email-elena.reshetova@intel.com> <1487588781-15123-2-git-send-email-elena.reshetova@intel.com> <20170220132424.GA5656@osiris> In-Reply-To: <20170220132424.GA5656@osiris> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8BIT MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > On Mon, Feb 20, 2017 at 01:06:18PM +0200, Elena Reshetova wrote: > > refcount_t type and corresponding API should be > > used instead of atomic_t when the variable is used as > > a reference counter. This allows to avoid accidental > > refcounter overflows that might lead to use-after-free > > situations. > > > > Signed-off-by: Elena Reshetova > > Signed-off-by: Hans Liljestrand > > Signed-off-by: Kees Cook > > Signed-off-by: David Windsor > > --- > > arch/s390/include/asm/debug.h | 3 ++- > > arch/s390/kernel/debug.c | 8 ++++---- > > 2 files changed, 6 insertions(+), 5 deletions(-) > > I can only see a pull request from Ingo a couple of hours ago for Peter's > refcount code. So the refcount code is not merged yet. It would have been > good if you would have waited until it is really merged to avoid confusion. Sorry, I guess I was a bit too rushy, but I also want to be able to fix all things that come up as I post these before next merge window closes. > > > @@ -361,7 +361,7 @@ debug_info_create(const char *name, int > pages_per_area, int nr_areas, > > debug_area_last = rc; > > rc->next = NULL; > > > > - debug_info_get(rc); > > + refcount_set(&rc->ref_count, 1); > > This is not wrong, but I will remove this hunk before applying your patch, > since this doesn't look like an obvious correct change at first glance. It isn't obvious, but needed unfortunately. refcount_inc is done in the way that it won't increment on zero value. And since for this variable you set the initial refcounter value to zero and then call debug_info_get (that does inc), this would only WARN and not increment. So for this initial case, we changed it to call refcount_set to "1" to make sure things work as before. Best Regards, Elena.