Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp536582imd; Fri, 26 Oct 2018 12:32:59 -0700 (PDT) X-Google-Smtp-Source: AJdET5f+ww22B1WRF96npCZFMJDZVWRC/fFYHxosf9ZmyKC4qHT2sKsGEhPFPkZIMdaqG1104W2Z X-Received: by 2002:a62:475c:: with SMTP id u89-v6mr4997867pfa.225.1540582379178; Fri, 26 Oct 2018 12:32:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540582379; cv=none; d=google.com; s=arc-20160816; b=u+GNd6hSPqzyBsU0ekThUhbkZIRLGep4M5gMZjsGTYUHafgX7pP1MtKP4kXZRozaGA dfluPzONyGseaEG9kmftnOeIWtRxDbiKttkEW9C4aFvez2zY/bXIp1zJH7wDCs0No9G4 M9lB31sR09PQRAtcDeEiTBhDiSx/c57ORFqrtEHe+pr/bV5GV4OLsBMGsH4TzG9C0oIs mp5yxz2jkjfgm83qL1G9M9KCDlpwLfRl2hOEk1ciSPXBVZxkdsejDfKPVQMnm5jLVAMG R4NPc1ZJz5yasrOqviBrQuhztQ9wNi6CeeYrrzeUPxuuZ5vc7eYu+FYwijUeu8jzLN2m S6HQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature; bh=m18beiZY/NGt28plFCGcBYujG4QmYJLf0rMTu/FwF7g=; b=TdD7LmexoK3/qY+K61Sb/2YGAXkDdd9M6k3vQR51vr9B8xHs62nA4bdZXciFhvn0d5 AudNwyoEr4a6GRpPI3Fphc5Vw/0MLJQFYOf6d/O6day66nmsu/Lzzyv1MvdOeUB4Jqpi TmiTep2PqMMQhbmnt9+7YWCkBwPoqMN1bawX/yikxmxTXzu0AK+2oguSU5F+IVn9NxEs wS2GHGOgMFwLbJFPzmp+RHdUcD9GoDziHeOQrm7BbXCTeFTEzbEeM4c+tdcImh4k9iag pvH95fcF1wIFmZAkKaMQBqDCapJJWeeP29a9+ZQ0716knrfufXxZHSuYdXxxouWgLxJp ZrJQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=eOmLSWlk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t62-v6si12549534pfd.133.2018.10.26.12.32.42; Fri, 26 Oct 2018 12:32:59 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=eOmLSWlk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726391AbeJ0EKi (ORCPT + 99 others); Sat, 27 Oct 2018 00:10:38 -0400 Received: from mail-yw1-f65.google.com ([209.85.161.65]:43407 "EHLO mail-yw1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725828AbeJ0EKi (ORCPT ); Sat, 27 Oct 2018 00:10:38 -0400 Received: by mail-yw1-f65.google.com with SMTP id j75-v6so909634ywj.10 for ; Fri, 26 Oct 2018 12:32:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=m18beiZY/NGt28plFCGcBYujG4QmYJLf0rMTu/FwF7g=; b=eOmLSWlkOkyLSkag1HPj5TmM3aQsCcdKlPrd3qoRECFKlYRPEV+oJeECzVJPbAhTKi dNKd/UzsaX/tekvwsKpjFrkkA3BBh5AdSs7Q8gtdlMfUZzblyP4dBmrviHXzEw0TgneG +PYw9e6dlwawEhAlYsQb1f039t4ODKeh2/4AE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=m18beiZY/NGt28plFCGcBYujG4QmYJLf0rMTu/FwF7g=; b=Ya8p/QylqMHA8eIWwIAEf/Ah7Gh1Sl2mVD8FXDUnptxqqrBQxwlDZd0Wud3Ay/YH62 29TRtUa9J55du9tL4m1zgiUvWUchqGytplsk6K8p24WvXTkRxkbIoA/3McgGAUqw8Dss zVi4HnH/CAlhdgY2SZgmLp/4gkJZ1RDvQvQEDsSKVY7Sm8gwNIeWP78+liUWBPcRmboM 9phApK4yyh3CH7zzbAOGSB3TtjjozZL/juQpJORdTU4t4+4GF+Haa08xSRQXlX5rcutu t/LA2UDzmBWhGTn3blMWkCe7RRU+3u8YUDsRnDmCFm8Nzjj/F9btZnD/0wk+vNBaSlh6 zqnQ== X-Gm-Message-State: AGRZ1gIziL6yWQx+FdNMe+xYCcw6WOzGSNxTXYkZRnJ0XAKYc5ssoqTW wjKU8v9G9gRYnQIKgb144s8SRVvN2Bo2bw== X-Received: by 2002:a0d:da85:: with SMTP id c127-v6mr4952923ywe.21.1540582339427; Fri, 26 Oct 2018 12:32:19 -0700 (PDT) Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com. [209.85.219.173]) by smtp.gmail.com with ESMTPSA id 84-v6sm2654511ywp.69.2018.10.26.12.32.18 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 26 Oct 2018 12:32:18 -0700 (PDT) Received: by mail-yb1-f173.google.com with SMTP id p144-v6so929420yba.11 for ; Fri, 26 Oct 2018 12:32:18 -0700 (PDT) X-Received: by 2002:a25:c6c8:: with SMTP id k191-v6mr4669235ybf.171.1540582337622; Fri, 26 Oct 2018 12:32:17 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:3990:0:0:0:0:0 with HTTP; Fri, 26 Oct 2018 12:32:16 -0700 (PDT) In-Reply-To: <20181026180042.52199-4-joel@joelfernandes.org> References: <20181026180042.52199-1-joel@joelfernandes.org> <20181026180042.52199-4-joel@joelfernandes.org> From: Kees Cook Date: Fri, 26 Oct 2018 20:32:16 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC 4/6] pstore: further reduce ramoops_get_next_prz arguments by passing record To: "Joel Fernandes (Google)" Cc: LKML , kernel-team@android.com, Anton Vorontsov , Colin Cross , Tony Luck Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 26, 2018 at 7:00 PM, Joel Fernandes (Google) wrote: > Both the id and type fields of a pstore_record are set by > ramoops_get_next_prz. So we can just pass a pointer to the pstore_record > instead of passing individual elements. This results in cleaner more > readable code and fewer lines. > > Signed-off-by: Joel Fernandes (Google) > --- > fs/pstore/ram.c | 18 ++++++++---------- > 1 file changed, 8 insertions(+), 10 deletions(-) > > diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c > index 3055e05acab1..710c3d30bac0 100644 > --- a/fs/pstore/ram.c > +++ b/fs/pstore/ram.c > @@ -125,7 +125,7 @@ static int ramoops_pstore_open(struct pstore_info *psi) > > static struct persistent_ram_zone * > ramoops_get_next_prz(struct persistent_ram_zone *przs[], uint *c, > - u64 *id, enum pstore_type_id *typep, bool update) > + struct pstore_record *record, bool update) > { > struct persistent_ram_zone *prz; > int i = (*c)++; > @@ -145,8 +145,8 @@ ramoops_get_next_prz(struct persistent_ram_zone *przs[], uint *c, > if (!persistent_ram_old_size(prz)) > return NULL; > > - *typep = prz->type; > - *id = i; > + record->type = prz->type; > + record->id = i; Yes yes. I've been meaning to get all this cleaned up after I refactored everything to actually HAVE record at all. :P > > return prz; > } > @@ -254,7 +254,7 @@ static ssize_t ramoops_pstore_read(struct pstore_record *record) > /* Find the next valid persistent_ram_zone for DMESG */ > while (cxt->dump_read_cnt < cxt->max_dump_cnt && !prz) { > prz = ramoops_get_next_prz(cxt->dprzs, &cxt->dump_read_cnt, > - &record->id, &record->type, 1); > + record, 1); In another patch, I think you could drop the "update" field too, and use the record->type instead to determine if update is needed. Like: static struct persistent_ram_zone * ramoops_get_next_prz(struct persistent_ram_zone *przs[], uint c, struct pstore_record *record) { bool update = (record->type == PSTORE_TYPE_DMESG); ... > if (!prz_ok(prz)) > continue; > header_length = ramoops_read_kmsg_hdr(persistent_ram_old(prz), > @@ -270,18 +270,17 @@ static ssize_t ramoops_pstore_read(struct pstore_record *record) > > if (!prz_ok(prz)) > prz = ramoops_get_next_prz(&cxt->cprz, &cxt->console_read_cnt, > - &record->id, &record->type, 0); > + record, 0); > > if (!prz_ok(prz)) > prz = ramoops_get_next_prz(&cxt->mprz, &cxt->pmsg_read_cnt, > - &record->id, &record->type, 0); > + record, 0); > > /* ftrace is last since it may want to dynamically allocate memory. */ > if (!prz_ok(prz)) { > if (!(cxt->flags & RAMOOPS_FLAG_FTRACE_PER_CPU)) { > prz = ramoops_get_next_prz(cxt->fprzs, > - &cxt->ftrace_read_cnt, &record->id, > - &record->type, 0); > + &cxt->ftrace_read_cnt, record, 0); > } else { > /* > * Build a new dummy record which combines all the > @@ -298,8 +297,7 @@ static ssize_t ramoops_pstore_read(struct pstore_record *record) > while (cxt->ftrace_read_cnt < cxt->max_ftrace_cnt) { > prz_next = ramoops_get_next_prz(cxt->fprzs, > &cxt->ftrace_read_cnt, > - &record->id, > - &record->type, 0); > + record, 0); > > if (!prz_ok(prz_next)) > continue; > -- > 2.19.1.568.g152ad8e336-goog > -- Kees Cook