Files
kernel/drivers/mmc/core/crypto.h
Satya Tangirala eb54e73236 ANDROID: mmc: MMC crypto API
Make mmc core able to use the blk-crypto framework for inline
encryption. This patch introduces a pointer to struct keyslot_manager
to struct mmc_host, and handles setting up the request_queue for
devices using that keyslot_manager appropriately. It also inits struct
mmc_request's inline encryption fields before it's passed to
mmc_host::ops->request.

Users of the core code in host/ (e.g. cqhci.c) should initialize the
keyslot_manager in struct mmc_host appropriately, if they want to
support inline encryption. They should also handle any inline
encryption related work necessary when mmc_host::ops->request is
called.

This patch is only compile tested, as I don't have a device to
actually test these patches. Enable CONFIG_MMC_CRYPTO to test

Bug: 153512828
Bug: 144046242
Change-Id: I6f98ffadfa6e39d7fdc3752b069210ad97babd8b
Co-developed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Satya Tangirala <satyat@google.com>
2020-05-11 15:04:14 -07:00

34 lines
762 B
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright 2020 Google LLC
*/
#ifndef _MMC_CORE_CRYPTO_H
#define _MMC_CORE_CRYPTO_H
struct mmc_host;
struct mmc_queue_req;
struct request;
struct request_queue;
#ifdef CONFIG_MMC_CRYPTO
void mmc_crypto_setup_queue(struct mmc_host *host, struct request_queue *q);
void mmc_crypto_free_host(struct mmc_host *host);
void mmc_crypto_prepare_req(struct mmc_queue_req *mqrq);
#else /* CONFIG_MMC_CRYPTO */
static inline void mmc_crypto_setup_queue(struct mmc_host *host,
struct request_queue *q) { }
static inline void mmc_crypto_free_host(struct mmc_host *host) { }
static inline void mmc_crypto_prepare_req(struct mmc_queue_req *mqrq) { }
#endif /* CONFIG_MMC_CRYPTO */
#endif /* _MMC_CORE_CRYPTO_H */