mirror of https://gitee.com/openkylin/linux.git
DMA-API: crypto: fix ixp4xx crypto platform device support
Don't statically allocate struct device's in modules, and shut the warning up with an empty release() function. There's a reason that warning is there and that's not for people to hide in this way. It's there to persuade people to use the correct APIs to allocate platform devices. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
d6cfaaba1a
commit
d8cbc3f792
|
@ -218,23 +218,10 @@ static dma_addr_t crypt_phys;
|
||||||
|
|
||||||
static int support_aes = 1;
|
static int support_aes = 1;
|
||||||
|
|
||||||
static void dev_release(struct device *dev)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define DRIVER_NAME "ixp4xx_crypto"
|
#define DRIVER_NAME "ixp4xx_crypto"
|
||||||
static struct platform_device pseudo_dev = {
|
|
||||||
.name = DRIVER_NAME,
|
|
||||||
.id = 0,
|
|
||||||
.num_resources = 0,
|
|
||||||
.dev = {
|
|
||||||
.coherent_dma_mask = DMA_BIT_MASK(32),
|
|
||||||
.release = dev_release,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct device *dev = &pseudo_dev.dev;
|
static struct platform_device *pdev;
|
||||||
|
static struct device *dev;
|
||||||
|
|
||||||
static inline dma_addr_t crypt_virt2phys(struct crypt_ctl *virt)
|
static inline dma_addr_t crypt_virt2phys(struct crypt_ctl *virt)
|
||||||
{
|
{
|
||||||
|
@ -1418,20 +1405,30 @@ static struct ixp_alg ixp4xx_algos[] = {
|
||||||
} };
|
} };
|
||||||
|
|
||||||
#define IXP_POSTFIX "-ixp4xx"
|
#define IXP_POSTFIX "-ixp4xx"
|
||||||
|
|
||||||
|
static const struct platform_device_info ixp_dev_info __initdata = {
|
||||||
|
.name = DRIVER_NAME,
|
||||||
|
.id = 0,
|
||||||
|
.dma_mask = DMA_BIT_MASK(32),
|
||||||
|
};
|
||||||
|
|
||||||
static int __init ixp_module_init(void)
|
static int __init ixp_module_init(void)
|
||||||
{
|
{
|
||||||
int num = ARRAY_SIZE(ixp4xx_algos);
|
int num = ARRAY_SIZE(ixp4xx_algos);
|
||||||
int i,err ;
|
int i, err ;
|
||||||
|
|
||||||
if (platform_device_register(&pseudo_dev))
|
pdev = platform_device_register_full(&ixp_dev_info);
|
||||||
return -ENODEV;
|
if (IS_ERR(pdev))
|
||||||
|
return PTR_ERR(pdev);
|
||||||
|
|
||||||
|
dev = &pdev->dev;
|
||||||
|
|
||||||
spin_lock_init(&desc_lock);
|
spin_lock_init(&desc_lock);
|
||||||
spin_lock_init(&emerg_lock);
|
spin_lock_init(&emerg_lock);
|
||||||
|
|
||||||
err = init_ixp_crypto();
|
err = init_ixp_crypto();
|
||||||
if (err) {
|
if (err) {
|
||||||
platform_device_unregister(&pseudo_dev);
|
platform_device_unregister(pdev);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
for (i=0; i< num; i++) {
|
for (i=0; i< num; i++) {
|
||||||
|
@ -1496,7 +1493,7 @@ static void __exit ixp_module_exit(void)
|
||||||
crypto_unregister_alg(&ixp4xx_algos[i].crypto);
|
crypto_unregister_alg(&ixp4xx_algos[i].crypto);
|
||||||
}
|
}
|
||||||
release_ixp_crypto();
|
release_ixp_crypto();
|
||||||
platform_device_unregister(&pseudo_dev);
|
platform_device_unregister(pdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(ixp_module_init);
|
module_init(ixp_module_init);
|
||||||
|
|
Loading…
Reference in New Issue