From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752624AbcGRXMk (ORCPT ); Mon, 18 Jul 2016 19:12:40 -0400 Received: from mga14.intel.com ([192.55.52.115]:37519 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752108AbcGRXJn (ORCPT ); Mon, 18 Jul 2016 19:09:43 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,386,1464678000"; d="scan'208";a="848764229" Date: Mon, 18 Jul 2016 17:09:39 -0600 From: Ross Zwisler To: Andrew Morton Cc: Ross Zwisler , Andrey Ryabinin , Jan Kara , "Kirill A. Shutemov" , linux-mm@kvack.org, Greg Thelen , Suleiman Souhlal , syzkaller@googlegroups.com, Kostya Serebryany , Alexander Potapenko , Sasha Levin , linux-kernel@vger.kernel.org, Konstantin Khlebnikov , Matthew Wilcox , Hugh Dickins , stable@vger.kernel.org Subject: Re: [PATCH] radix-tree: fix radix_tree_iter_retry() for tagged iterators. Message-ID: <20160718230939.GA2076@linux.intel.com> References: <1468495196-10604-1-git-send-email-aryabinin@virtuozzo.com> <20160714222527.GA26136@linux.intel.com> <5788A46A.70106@virtuozzo.com> <20160715190040.GA7195@linux.intel.com> <20160715135733.0a33f8f2bc3ee3fadb62b109@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160715135733.0a33f8f2bc3ee3fadb62b109@linux-foundation.org> User-Agent: Mutt/1.6.1 (2016-04-27) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 15, 2016 at 01:57:33PM -0700, Andrew Morton wrote: > On Fri, 15 Jul 2016 13:00:40 -0600 Ross Zwisler wrote: > > > > > ... > > > > In looking at this more, I agree that your patch fixes this particular bug, > > but I think that ultimately we might want something more general. > > > > ... > > > > --- a/include/linux/radix-tree.h > > +++ b/include/linux/radix-tree.h > > @@ -463,6 +463,9 @@ static inline struct radix_tree_node *entry_to_node(void *ptr) > > static __always_inline void ** > > radix_tree_next_slot(void **slot, struct radix_tree_iter *iter, unsigned flags) > > { > > + if (unlikely(!slot)) > > + return NULL; > > + > > if (flags & RADIX_TREE_ITER_TAGGED) { > > void *canon = slot; > > I'll hang onto Andrey's > radix-tree-fix-radix_tree_iter_retry-for-tagged-iterators.patch for > now, plan to send it in to Linus Wednesdayish. If we can get the above > settled down prior to that then I shall swap over. Sure, that works for me.