net/irda: sh_sir: Modify iounmap wrong execution
On sh_sir_probe function, there was a possibility that iounmap is executed even though self->membase was NULL when error case. This patch modify it. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
ba5d47cf43
Коммит
33d8212c4d
|
@ -708,7 +708,6 @@ static int __devinit sh_sir_probe(struct platform_device *pdev)
|
|||
struct sh_sir_self *self;
|
||||
struct resource *res;
|
||||
char clk_name[8];
|
||||
void __iomem *base;
|
||||
unsigned int irq;
|
||||
int err = -ENOMEM;
|
||||
|
||||
|
@ -723,14 +722,14 @@ static int __devinit sh_sir_probe(struct platform_device *pdev)
|
|||
if (!ndev)
|
||||
goto exit;
|
||||
|
||||
base = ioremap_nocache(res->start, resource_size(res));
|
||||
if (!base) {
|
||||
self = netdev_priv(ndev);
|
||||
self->membase = ioremap_nocache(res->start, resource_size(res));
|
||||
if (!self->membase) {
|
||||
err = -ENXIO;
|
||||
dev_err(&pdev->dev, "Unable to ioremap.\n");
|
||||
goto err_mem_1;
|
||||
}
|
||||
|
||||
self = netdev_priv(ndev);
|
||||
err = sh_sir_init_iobuf(self, IRDA_SKB_MAX_MTU, IRDA_SIR_MAX_FRAME);
|
||||
if (err)
|
||||
goto err_mem_2;
|
||||
|
@ -747,7 +746,6 @@ static int __devinit sh_sir_probe(struct platform_device *pdev)
|
|||
ndev->netdev_ops = &sh_sir_ndo;
|
||||
ndev->irq = irq;
|
||||
|
||||
self->membase = base;
|
||||
self->ndev = ndev;
|
||||
self->qos.baud_rate.bits &= IR_9600; /* FIXME */
|
||||
self->qos.min_turn_time.bits = 1; /* 10 ms or more */
|
||||
|
|
Загрузка…
Ссылка в новой задаче