Received: by 2002:a25:23cc:0:0:0:0:0 with SMTP id j195csp1294665ybj; Thu, 7 May 2020 20:38:34 -0700 (PDT) X-Google-Smtp-Source: APiQypKfqd47P0QEtf2JUtgfF1HchWdnfe83K6DHujCk7PLNVH6RyGvyIv0sxhkB+mP5ASY0XWeN X-Received: by 2002:a17:906:cec5:: with SMTP id si5mr195005ejb.267.1588909114750; Thu, 07 May 2020 20:38:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588909114; cv=none; d=google.com; s=arc-20160816; b=VQ9qK4bSOX8y/fwQbGHWEeT8qPO+LUeb6lCe8WBKNN4fJxQ7j5inMhr6Rkhvom417N HgDLep3Uyg0mQvWP8WoErHwgYkBr1iA3ILDxt+9k+wOmc+dnUh0W93bgP3hKQuykT6SV 4geEF5Tog25S7TF0STMQLfSngyqFLBANk3y3kojG+w9jcmXPzMw+aghHJM+wdaBHxGQz sBE+1KLzX/LjHOzlRDumkXwaK3ACG8HG3Rq/aPjoYpd9PtLA+t/uEEvyJoqypj+/zc07 LlPDZpM/nI2KWw419uzR5pK13Z4AJBRSl2XnT/hQZj9EfcjOllVPq7vOMs67BtYgFILD vdpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=UxNMWZjNhfV34kPVBQKKTvAd+cCvU1MJhKY7a3erSOs=; b=SGy+wWd/7HA22Dx42mRd67gFxf6dI2CXlkBaSdSVmy3xaRZuT3m78Mq50XW2Vzcj90 2XD+pRBVnwYVQJG+5kW//pcXCqwNS1Nx4JVyZ/X2QMnIc16VXBLX1Fy4mHgsf8AUeskZ OCYuYO88W4brvd6Ux70O8aEwSbBO7Scz+hyxrJ4hULRyq3/L6Fy0iZyUGwCof7FGLq3R imWOl2knnjQ6hTymD4PGK6JQUV1rMp7TURVmoGMclZOclvIdRM2JuJX0EZEgNLIkHh1E R2oW6PJxeHghjWPXRT9/Byvt9iNvCcBiHjhVhNigmtxXKJ3tr+t3tWYIDOMiO3MCB1jU ilNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=exK3GG9N; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h6si246071ejq.96.2020.05.07.20.38.12; Thu, 07 May 2020 20:38:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=exK3GG9N; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726736AbgEHDgc (ORCPT + 99 others); Thu, 7 May 2020 23:36:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58954 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726514AbgEHDgb (ORCPT ); Thu, 7 May 2020 23:36:31 -0400 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BA770C05BD43 for ; Thu, 7 May 2020 20:36:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=UxNMWZjNhfV34kPVBQKKTvAd+cCvU1MJhKY7a3erSOs=; b=exK3GG9NDiCumIvC5L939lj7NO W37nuFbrVWsR/5ORD2kYGjuFrUzErDYHi75DQ+4mQVEYg06AaRT2qyGxzjEOoorztE1YRYQnkTDQ0 WEHtvYeBNIeHTURKKOJS/xPUm8zKklsPkGQt1kUPSALzdPVhdp329URlcUkpYxt6Bf7aaC6JNmn7q hi6E7uwkx3CHRm2ZhGRNGhUmBR8WRieHmXdPYBaXCioGbW3ylIT9eD6X2HNL8LzuhsR5Cybf/uil6 yNegQWAd/JWnGDslxfd//DZ5vzJyxZGLMc2lDkCu+0stktCJ0fkWq+WAkpSwav6HqXXM1mmQd8efV uRz+UPqw==; Received: from willy by bombadil.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1jWtoH-0007Zm-QA; Fri, 08 May 2020 03:36:25 +0000 Date: Thu, 7 May 2020 20:36:25 -0700 From: Matthew Wilcox To: Andrew Morton Cc: Vasily Averin , linux-kernel@vger.kernel.org, Waiman Long , Andreas Schwab Subject: Re: [PATCH] ipc/util.c: sysvipc_find_ipc() incorrectly updates position index Message-ID: <20200508033625.GO16070@bombadil.infradead.org> References: <4921fe9b-9385-a2b4-1dc4-1099be6d2e39@virtuozzo.com> <20200507170242.6cbb88ae672deed67152e221@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200507170242.6cbb88ae672deed67152e221@linux-foundation.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 07, 2020 at 05:02:42PM -0700, Andrew Morton wrote: > Here's how I resolved things. Please check? > > static struct kern_ipc_perm *sysvipc_find_ipc(struct ipc_ids *ids, loff_t pos, > loff_t *new_pos) > { > unsigned long index = pos; > struct kern_ipc_perm *ipc; > > rcu_read_lock(); > ipc = xa_find(&ids->ipcs, &index, ULONG_MAX, XA_PRESENT); > if (ipc) > ipc_lock_object(ipc); > else > rcu_read_unlock(); > *new_pos = pos + 1; > return ipc; > } Surely that should be '*new_pos = index + 1'? Or did I misunderstand the reasoning behind the other patch?