iov_iter: Move unnecessary inclusion of crypto/hash.h
The header file linux/uio.h includes crypto/hash.h which pulls in most of the Crypto API. Since linux/uio.h is used throughout the kernel this means that every tiny bit of change to the Crypto API causes the entire kernel to get rebuilt. This patch fixes this by moving it into lib/iov_iter.c instead where it is actually used. This patch also fixes the ifdef to use CRYPTO_HASH instead of just CRYPTO which does not guarantee the existence of ahash. Unfortunately a number of drivers were relying on linux/uio.h to provide access to linux/slab.h. This patch adds inclusions of linux/slab.h as detected by build failures. Also skbuff.h was relying on this to provide a declaration for ahash_request. This patch adds a forward declaration instead. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
067c054fb9
commit
7999096fa9
@ -9,6 +9,7 @@
|
||||
#include <linux/kallsyms.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/kprobes.h>
|
||||
#include <linux/wait.h>
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#include "sf-pdma.h"
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/remoteproc.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#include "st_fdma.h"
|
||||
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_dma.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#include "dmaengine.h"
|
||||
#include "virt-dma.h"
|
||||
|
@ -4,6 +4,7 @@
|
||||
#include <linux/iommu.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/poll.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/uacce.h>
|
||||
|
||||
static struct class *uacce_class;
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include <linux/pstore_blk.h>
|
||||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/bitops.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
static struct mtdpstore_context {
|
||||
int index;
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include <linux/mtd/rawnand.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/iopoll.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
/*
|
||||
* HPNFC can work in 3 modes:
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <linux/reset.h>
|
||||
#include <linux/soc/qcom/mdt_loader.h>
|
||||
#include <linux/iopoll.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#include "remoteproc_internal.h"
|
||||
#include "qcom_common.h"
|
||||
|
@ -5,6 +5,7 @@
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/workqueue.h>
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
* Copyright (C) 2007 Oracle. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <crypto/hash.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/bio.h>
|
||||
#include <linux/buffer_head.h>
|
||||
|
@ -238,6 +238,7 @@
|
||||
SKB_DATA_ALIGN(sizeof(struct sk_buff)) + \
|
||||
SKB_DATA_ALIGN(sizeof(struct skb_shared_info)))
|
||||
|
||||
struct ahash_request;
|
||||
struct net_device;
|
||||
struct scatterlist;
|
||||
struct pipe_inode_info;
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include <linux/compiler.h> /* __user */
|
||||
#include <uapi/linux/socket.h>
|
||||
|
||||
struct file;
|
||||
struct pid;
|
||||
struct cred;
|
||||
struct socket;
|
||||
|
@ -7,7 +7,6 @@
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/thread_info.h>
|
||||
#include <crypto/hash.h>
|
||||
#include <uapi/linux/uio.h>
|
||||
|
||||
struct page;
|
||||
|
@ -1,4 +1,5 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
#include <crypto/hash.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/bvec.h>
|
||||
#include <linux/uio.h>
|
||||
@ -1567,7 +1568,7 @@ EXPORT_SYMBOL(csum_and_copy_to_iter);
|
||||
size_t hash_and_copy_to_iter(const void *addr, size_t bytes, void *hashp,
|
||||
struct iov_iter *i)
|
||||
{
|
||||
#ifdef CONFIG_CRYPTO
|
||||
#ifdef CONFIG_CRYPTO_HASH
|
||||
struct ahash_request *hash = hashp;
|
||||
struct scatterlist sg;
|
||||
size_t copied;
|
||||
|
Loading…
Reference in New Issue
Block a user