From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AH8x227FM3Ec359aSzPm3AWhV8tuVXZm/G7EXxLnsRaUjK03qBxwqT7Gg3gcHHW84UtO4i7i117N ARC-Seal: i=1; a=rsa-sha256; t=1518639154; cv=none; d=google.com; s=arc-20160816; b=JCKs2Hk9hBxE08RcwGcRdqDJCzcgIkr7gQjW4xrj3JYfOcffBNXDE2V4XfH3VtjnUP YnBu6/MtZ+yB9fqTL4kMu6FjZ9Q81ITh0Oc+57riDWDNPhkBUhQfA+vGXOMW5obDfguG y3nWfci+30A9bIQNvdNPFc4MV70+8d59aZz1qjVl3vRAXyzinpP/2/fDDuBf+VucD0vS dZpXp5a574Hub32rVOCAhI4NEF6hcfKKp6wLF7/Dr0VFwJ7798uP6GmmYwvWMiV2MNzP 1EUkk+8UqEjZR063jjId5IMUyWawMlpNXw0KLc+pWAikVztIYXanBfX4FaEe36EaGiz9 G0Cg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:dkim-signature:delivered-to :list-id:list-subscribe:list-unsubscribe:list-help:list-post :precedence:mailing-list:arc-authentication-results; bh=T+o9y1lonFI33WkLhxoE/hewoYVFjBi8mVizHUiA0V0=; b=QQJtkQEn1JLKEji6NdAk56hZe1Wfc+mKPsSeQlvLNF+2xj+D+BGlEmIfOF/+mWN55s VJ+vhF7dRhJhxe2UU4JIQ374Ww4UVbUOaTAVNnRZVhbHMOlpaesqvsO80S8FjWLFY2T8 EA9wa918CQ1+YqiTFEQi6v3sm0/Huha08cSI5oOdRnEtTFrZXQQ+KwnNsekcv1v6Jdgf JrmIkoTV0hilSy35MIRi7Er8SyYkTyMhHjZWPbaMF//y8dYZKurBkTFoUKEX7iTaaxUN NPx6qSSY9fi9nR3VLCyM93kS+cSDqYT70l/ne8yrRquOCe9zwtZ9WfzKUw1BTY57r68H JVfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=cCMdrktW; spf=pass (google.com: domain of kernel-hardening-return-11776-gregkh=linuxfoundation.org@lists.openwall.com designates 195.42.179.200 as permitted sender) smtp.mailfrom=kernel-hardening-return-11776-gregkh=linuxfoundation.org@lists.openwall.com Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=cCMdrktW; spf=pass (google.com: domain of kernel-hardening-return-11776-gregkh=linuxfoundation.org@lists.openwall.com designates 195.42.179.200 as permitted sender) smtp.mailfrom=kernel-hardening-return-11776-gregkh=linuxfoundation.org@lists.openwall.com Mailing-List: contact kernel-hardening-help@lists.openwall.com; run by ezmlm List-Post: List-Help: List-Unsubscribe: List-Subscribe: From: Matthew Wilcox To: Andrew Morton Cc: Matthew Wilcox , linux-mm@kvack.org, Kees Cook , linux-kernel@vger.kernel.org, kernel-hardening@lists.openwall.com, Joe Perches Subject: [PATCH v2 0/8] Add kvzalloc_struct to complement kvzalloc_array Date: Wed, 14 Feb 2018 12:11:46 -0800 Message-Id: <20180214201154.10186-1-willy@infradead.org> X-Mailer: git-send-email 2.14.3 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1592408570503156521?= X-GMAIL-MSGID: =?utf-8?q?1592408570503156521?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: From: Matthew Wilcox We all know the perils of multiplying a value provided from userspace by a constant and then allocating the resulting number of bytes. That's why we have kvmalloc_array(), so we don't have to think about it. This solves the same problem when we embed one of these arrays in a struct like this: struct { int n; unsigned long array[]; }; Using kvzalloc_struct() to allocate this will save precious thinking time and reduce the possibilities of bugs. v2: Minor fixes pointed out by Kees Added sample conversions I added a few more sample conversions for demonstration purposes, and one thing I noticed is that the kvmalloc family of functions live in which (contrary to popular belief) is not already automatically included everywhere. Should they be moved to slab.h to be with kmalloc, a new file (malloc.h? kvmalloc.h?), or even kernel.h? Matthew Wilcox (8): mm: Add kernel-doc for kvfree mm: Add kvmalloc_ab_c and kvzalloc_struct Convert virtio_console to kvzalloc_struct Convert dax device to kvzalloc_struct Convert infiniband uverbs to kvzalloc_struct Convert v4l2 event to kvzalloc_struct Convert vhost to kvzalloc_struct Convert jffs2 acl to kvzalloc_struct drivers/char/virtio_console.c | 3 +-- drivers/dax/device.c | 2 +- drivers/infiniband/core/uverbs_cmd.c | 4 +-- drivers/media/v4l2-core/v4l2-event.c | 3 +-- drivers/vhost/vhost.c | 2 +- fs/jffs2/acl.c | 3 ++- fs/jffs2/acl.h | 1 + include/linux/mm.h | 51 ++++++++++++++++++++++++++++++++++++ include/rdma/ib_verbs.h | 5 +--- mm/util.c | 10 +++++++ 10 files changed, 71 insertions(+), 13 deletions(-) -- 2.15.1