From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E8A81C433E1 for ; Sun, 28 Jun 2020 18:06:22 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 9C43C206C3 for ; Sun, 28 Jun 2020 18:06:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="Z5spa72D" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9C43C206C3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id DEB596B0003; Sun, 28 Jun 2020 14:06:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D9C976B0005; Sun, 28 Jun 2020 14:06:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CB1276B0006; Sun, 28 Jun 2020 14:06:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0238.hostedemail.com [216.40.44.238]) by kanga.kvack.org (Postfix) with ESMTP id B05C16B0003 for ; Sun, 28 Jun 2020 14:06:21 -0400 (EDT) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 2C375181AC9CC for ; Sun, 28 Jun 2020 18:06:21 +0000 (UTC) X-FDA: 76979400162.16.skirt95_050b00826e68 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin16.hostedemail.com (Postfix) with ESMTP id D6874100E690C for ; Sun, 28 Jun 2020 18:06:20 +0000 (UTC) X-HE-Tag: skirt95_050b00826e68 X-Filterd-Recvd-Size: 4558 Received: from mail-io1-f67.google.com (mail-io1-f67.google.com [209.85.166.67]) by imf49.hostedemail.com (Postfix) with ESMTP for ; Sun, 28 Jun 2020 18:06:20 +0000 (UTC) Received: by mail-io1-f67.google.com with SMTP id v8so14768332iox.2 for ; Sun, 28 Jun 2020 11:06:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=nIK/OChRVmVoJTuyMGQzpm0rHctDDsuMCJJxWBYwBQw=; b=Z5spa72DQofI/63ezBPQRBvc9INvJoQrJx3TJ7cCJVHRdE6jTt6XL+CQMDA3sD7X+c H5FLFB0PKxE8pB+MiYaktHq+45yDY+pWAHv0KdIbSy2O++BN8YL4WuZ7QFdkLppkf210 0rw4HlX/ra/DX/ihuODI8HeR1xObpVOIsDDd6sPtilN5DyPkL2cSLnCAIlHFRKI5jVQD RBIgRyAco8LhCCFzlIhSBYKwBqzfJNPJ8RrweASaNzbHN57ib1juU7l27OfH6ko3mOAF xlWRN6DCgRs/UcS9GwvLAyrfcW3JrtJjGDzE1FFoeBwiDKdTJ0ebHed50dKgxH0pt+XF KGxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=nIK/OChRVmVoJTuyMGQzpm0rHctDDsuMCJJxWBYwBQw=; b=NAb6Gv4HJuUopIIQWyifs2ozBSFzJEeOHe+Dkordc1u2nujfs3W+MQwnjOw3OKXcbf QFu1GbWsH1P6GWYdx24YqF0J4UbodKkHVZMwlpCDzewUYjhmKu3QcAhvLlJG422CR1T8 fXUZxVLUz6kuZyqTpcaq7nLdR53bjIP93nGRe6EdTlxGU4AyidB4XwCPHOIfirvGncyS ZA6W2ElA2qwUlz2tHCNYI9Js0GmUZHt/g7/7ixYmwl7r3ocbaqWrD1vjL7XwjDe5YS2r UHIV0OmXlLfVB9YqcxSWxWUl3zQJNoBM+vl+5skcECs4j++mMgBGIjEP9+C8dMoEbgJ3 udIg== X-Gm-Message-State: AOAM530LEaYy+cm12PkCQVyITxwa1HJrIA9I/BZ+8h9FZDP38D+GqWcK KnPRFctrETrqK4v+WXR9AA+qCENXojUS65ZTiLGvxg== X-Google-Smtp-Source: ABdhPJwHfxfeQq9oRM50K88Jkv/stvFurGcubVZVPC9CzZbSlGrKrvviOyAkv/WKNTgHlNEwyx4Ng8mmHR4AqnxjjsA= X-Received: by 2002:a02:30c4:: with SMTP id q187mr13641062jaq.102.1593367579793; Sun, 28 Jun 2020 11:06:19 -0700 (PDT) MIME-Version: 1.0 References: <20200628152500.17916-1-brgl@bgdev.pl> <693db5a878ac09994e2a27c64cb14c0e552f3f50.camel@perches.com> In-Reply-To: <693db5a878ac09994e2a27c64cb14c0e552f3f50.camel@perches.com> From: Bartosz Golaszewski Date: Sun, 28 Jun 2020 20:06:09 +0200 Message-ID: Subject: Re: [PATCH] mm: util: update the kerneldoc for kstrdup_const() To: Joe Perches Cc: Andrew Morton , linux-mm@kvack.org, Linux Kernel Mailing List , Bartosz Golaszewski Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: D6874100E690C X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam01 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Sun, Jun 28, 2020 at 7:37 PM Joe Perches wrote: > > On Sun, 2020-06-28 at 17:25 +0200, Bartosz Golaszewski wrote: > > From: Bartosz Golaszewski > > > > Memory allocated with kstrdup_const() must not be passed to regular > > krealloc() as it is not aware of the possibility of the chunk residing > > in .rodata. Since there are no potential users of krealloc_const() > > at the moment, let's just update the doc to make it explicit. > > Another option would be to return NULL if it's > used from krealloc with a pointer into rodata > --- > mm/slab_common.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/mm/slab_common.c b/mm/slab_common.c > index 37d48a56431d..f8b49656171b 100644 > --- a/mm/slab_common.c > +++ b/mm/slab_common.c > @@ -1683,6 +1683,9 @@ static __always_inline void *__do_krealloc(const void *p, size_t new_size, > * @new_size: how many bytes of memory are required. > * @flags: the type of memory to allocate. > * > + * If the object pointed to is in rodata (likely from kstrdup_const) > + * %NULL is returned. > + * > * The contents of the object pointed to are preserved up to the > * lesser of the new and old sizes. If @p is %NULL, krealloc() > * behaves exactly like kmalloc(). If @new_size is 0 and @p is not a > @@ -1694,6 +1697,9 @@ void *krealloc(const void *p, size_t new_size, gfp_t flags) > { > void *ret; > > + if (unlikely(is_kernel_rodata((unsigned long)p))) > + return NULL; > + > if (unlikely(!new_size)) { > kfree(p); > return ZERO_SIZE_PTR; > > > In that case we should probably add a WARN_ON() - otherwise the user will be baffled by krealloc() failing. Bartosz