mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 02:31:27 +02:00
crypto: cesa - allocate engines with main struct
Use a flexible array member to combine and simplify allocation. Move struct mv_cesa_dev down as flexible array members require full definitions. Signed-off-by: Rosen Penev <rosenp@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
bd11fb14de
commit
6ef4cd5b0c
|
|
@ -416,7 +416,7 @@ static int mv_cesa_probe(struct platform_device *pdev)
|
|||
const struct mbus_dram_target_info *dram;
|
||||
struct device *dev = &pdev->dev;
|
||||
struct mv_cesa_dev *cesa;
|
||||
struct mv_cesa_engine *engines;
|
||||
struct mv_cesa_engine *engine;
|
||||
int irq, ret, i, cpu;
|
||||
u32 sram_size;
|
||||
|
||||
|
|
@ -431,7 +431,8 @@ static int mv_cesa_probe(struct platform_device *pdev)
|
|||
return -ENOTSUPP;
|
||||
}
|
||||
|
||||
cesa = devm_kzalloc(dev, sizeof(*cesa), GFP_KERNEL);
|
||||
cesa = devm_kzalloc(dev, struct_size(cesa, engines, caps->nengines),
|
||||
GFP_KERNEL);
|
||||
if (!cesa)
|
||||
return -ENOMEM;
|
||||
|
||||
|
|
@ -445,10 +446,6 @@ static int mv_cesa_probe(struct platform_device *pdev)
|
|||
sram_size = CESA_SA_MIN_SRAM_SIZE;
|
||||
|
||||
cesa->sram_size = sram_size;
|
||||
cesa->engines = devm_kcalloc(dev, caps->nengines, sizeof(*engines),
|
||||
GFP_KERNEL);
|
||||
if (!cesa->engines)
|
||||
return -ENOMEM;
|
||||
|
||||
spin_lock_init(&cesa->lock);
|
||||
|
||||
|
|
@ -465,7 +462,7 @@ static int mv_cesa_probe(struct platform_device *pdev)
|
|||
platform_set_drvdata(pdev, cesa);
|
||||
|
||||
for (i = 0; i < caps->nengines; i++) {
|
||||
struct mv_cesa_engine *engine = &cesa->engines[i];
|
||||
engine = &cesa->engines[i];
|
||||
char res_name[16];
|
||||
|
||||
engine->id = i;
|
||||
|
|
|
|||
|
|
@ -402,27 +402,6 @@ struct mv_cesa_dev_dma {
|
|||
struct dma_pool *padding_pool;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mv_cesa_dev - CESA device
|
||||
* @caps: device capabilities
|
||||
* @regs: device registers
|
||||
* @sram_size: usable SRAM size
|
||||
* @lock: device lock
|
||||
* @engines: array of engines
|
||||
* @dma: dma pools
|
||||
*
|
||||
* Structure storing CESA device information.
|
||||
*/
|
||||
struct mv_cesa_dev {
|
||||
const struct mv_cesa_caps *caps;
|
||||
void __iomem *regs;
|
||||
struct device *dev;
|
||||
unsigned int sram_size;
|
||||
spinlock_t lock;
|
||||
struct mv_cesa_engine *engines;
|
||||
struct mv_cesa_dev_dma *dma;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mv_cesa_engine - CESA engine
|
||||
* @id: engine id
|
||||
|
|
@ -471,6 +450,27 @@ struct mv_cesa_engine {
|
|||
int irq;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mv_cesa_dev - CESA device
|
||||
* @caps: device capabilities
|
||||
* @regs: device registers
|
||||
* @sram_size: usable SRAM size
|
||||
* @lock: device lock
|
||||
* @dma: dma pools
|
||||
* @engines: array of engines
|
||||
*
|
||||
* Structure storing CESA device information.
|
||||
*/
|
||||
struct mv_cesa_dev {
|
||||
const struct mv_cesa_caps *caps;
|
||||
void __iomem *regs;
|
||||
struct device *dev;
|
||||
unsigned int sram_size;
|
||||
spinlock_t lock;
|
||||
struct mv_cesa_dev_dma *dma;
|
||||
struct mv_cesa_engine engines[];
|
||||
};
|
||||
|
||||
/**
|
||||
* struct mv_cesa_req_ops - CESA request operations
|
||||
* @process: process a request chunk result (should return 0 if the
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user