Hi > From: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > > If SSI uses shared pin, some SSI will be used as parent SSI. > Then, normal SSI's remove and Parent SSI's remove > (these are same SSI) will be called when unbind or remove timing. > In this case, free_irq() will be called twice. > This patch solve this issue. > > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx> > Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@xxxxxxxxxxx> > --- This was Reported-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@xxxxxxxxxxx> Mark, please let me know if v2 was required > sound/soc/sh/rcar/ssi.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c > index 5960042..e23fcab 100644 > --- a/sound/soc/sh/rcar/ssi.c > +++ b/sound/soc/sh/rcar/ssi.c > @@ -726,6 +726,11 @@ static int rsnd_ssi_dma_remove(struct rsnd_mod *mod, > struct rsnd_priv *priv) > { > struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); > + struct rsnd_mod *ssi_parent_mod = rsnd_io_to_mod_ssip(io); > + > + /* Do nothing for SSI parent mod */ > + if (ssi_parent_mod == mod) > + return 0; > > /* PIO will request IRQ again */ > free_irq(ssi->irq, mod); > -- > 1.9.1 >