Skip to content

Commit

Permalink
[CRYPTO] scatterwalk: Move scatterwalk.h to linux/crypto
Browse files Browse the repository at this point in the history
The scatterwalk infrastructure is used by algorithms so it needs to
move out of crypto for future users that may live in drivers/crypto
or asm/*/crypto.

Signed-off-by: Herbert Xu <[email protected]>
  • Loading branch information
herbertx committed Jan 10, 2008
1 parent fe70f5d commit 42c271c
Show file tree
Hide file tree
Showing 8 changed files with 42 additions and 41 deletions.
3 changes: 1 addition & 2 deletions crypto/authenc.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

#include <crypto/algapi.h>
#include <crypto/authenc.h>
#include <crypto/scatterwalk.h>
#include <linux/err.h>
#include <linux/init.h>
#include <linux/kernel.h>
Expand All @@ -20,8 +21,6 @@
#include <linux/slab.h>
#include <linux/spinlock.h>

#include "scatterwalk.h"

struct authenc_instance_ctx {
struct crypto_spawn auth;
struct crypto_spawn enc;
Expand Down
2 changes: 1 addition & 1 deletion crypto/blkcipher.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
*
*/

#include <crypto/scatterwalk.h>
#include <linux/crypto.h>
#include <linux/errno.h>
#include <linux/hardirq.h>
Expand All @@ -25,7 +26,6 @@
#include <linux/string.h>

#include "internal.h"
#include "scatterwalk.h"

enum {
BLKCIPHER_WALK_PHYS = 1 << 0,
Expand Down
3 changes: 1 addition & 2 deletions crypto/digest.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*
*/

#include <crypto/scatterwalk.h>
#include <linux/mm.h>
#include <linux/errno.h>
#include <linux/hardirq.h>
Expand All @@ -20,8 +21,6 @@
#include <linux/module.h>
#include <linux/scatterlist.h>

#include "internal.h"

static int init(struct hash_desc *desc)
{
struct crypto_tfm *tfm = crypto_hash_tfm(desc->tfm);
Expand Down
3 changes: 2 additions & 1 deletion crypto/gcm.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@

#include <crypto/algapi.h>
#include <crypto/gf128mul.h>
#include <crypto/scatterwalk.h>
#include <linux/err.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>

#include "scatterwalk.h"
#include "internal.h"

struct gcm_instance_ctx {
struct crypto_spawn ctr;
Expand Down
29 changes: 0 additions & 29 deletions crypto/internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
#include <linux/notifier.h>
#include <linux/rwsem.h>
#include <linux/slab.h>
#include <asm/kmap_types.h>

/* Crypto notification events. */
enum {
Expand All @@ -50,34 +49,6 @@ extern struct list_head crypto_alg_list;
extern struct rw_semaphore crypto_alg_sem;
extern struct blocking_notifier_head crypto_chain;

static inline enum km_type crypto_kmap_type(int out)
{
enum km_type type;

if (in_softirq())
type = out * (KM_SOFTIRQ1 - KM_SOFTIRQ0) + KM_SOFTIRQ0;
else
type = out * (KM_USER1 - KM_USER0) + KM_USER0;

return type;
}

static inline void *crypto_kmap(struct page *page, int out)
{
return kmap_atomic(page, crypto_kmap_type(out));
}

static inline void crypto_kunmap(void *vaddr, int out)
{
kunmap_atomic(vaddr, crypto_kmap_type(out));
}

static inline void crypto_yield(u32 flags)
{
if (flags & CRYPTO_TFM_REQ_MAY_SLEEP)
cond_resched();
}

#ifdef CONFIG_PROC_FS
void __init crypto_init_proc(void);
void __exit crypto_exit_proc(void);
Expand Down
5 changes: 2 additions & 3 deletions crypto/scatterwalk.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,15 @@
* any later version.
*
*/

#include <crypto/scatterwalk.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/pagemap.h>
#include <linux/highmem.h>
#include <linux/scatterlist.h>

#include "internal.h"
#include "scatterwalk.h"

static inline void memcpy_dir(void *buf, void *sgdata, size_t nbytes, int out)
{
void *src = out ? buf : sgdata;
Expand Down
2 changes: 1 addition & 1 deletion crypto/xcbc.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
* Kazunori Miyazawa <[email protected]>
*/

#include <crypto/scatterwalk.h>
#include <linux/crypto.h>
#include <linux/err.h>
#include <linux/hardirq.h>
Expand All @@ -27,7 +28,6 @@
#include <linux/rtnetlink.h>
#include <linux/slab.h>
#include <linux/scatterlist.h>
#include "internal.h"

static u_int32_t ks[12] = {0x01010101, 0x01010101, 0x01010101, 0x01010101,
0x02020202, 0x02020202, 0x02020202, 0x02020202,
Expand Down
36 changes: 34 additions & 2 deletions crypto/scatterwalk.h → include/crypto/scatterwalk.h
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
/*
* Cryptographic API.
* Cryptographic scatter and gather helpers.
*
* Copyright (c) 2002 James Morris <[email protected]>
* Copyright (c) 2002 Adam J. Richter <[email protected]>
* Copyright (c) 2004 Jean-Luc Cooke <[email protected]>
* Copyright (c) 2007 Herbert Xu <[email protected]>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
Expand All @@ -15,10 +16,41 @@
#ifndef _CRYPTO_SCATTERWALK_H
#define _CRYPTO_SCATTERWALK_H

#include <asm/kmap_types.h>
#include <crypto/algapi.h>
#include <linux/hardirq.h>
#include <linux/highmem.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/scatterlist.h>

#include "internal.h"
static inline enum km_type crypto_kmap_type(int out)
{
enum km_type type;

if (in_softirq())
type = out * (KM_SOFTIRQ1 - KM_SOFTIRQ0) + KM_SOFTIRQ0;
else
type = out * (KM_USER1 - KM_USER0) + KM_USER0;

return type;
}

static inline void *crypto_kmap(struct page *page, int out)
{
return kmap_atomic(page, crypto_kmap_type(out));
}

static inline void crypto_kunmap(void *vaddr, int out)
{
kunmap_atomic(vaddr, crypto_kmap_type(out));
}

static inline void crypto_yield(u32 flags)
{
if (flags & CRYPTO_TFM_REQ_MAY_SLEEP)
cond_resched();
}

static inline unsigned long scatterwalk_samebuf(struct scatter_walk *walk_in,
struct scatter_walk *walk_out)
Expand Down

0 comments on commit 42c271c

Please sign in to comment.