Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 33d8212c authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by David S. Miller
Browse files

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: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ba5d47cf
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -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 */