lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.1307301114020.25629@axis700.grange>
Date:	Tue, 30 Jul 2013 11:22:31 +0200 (CEST)
From:	Guennadi Liakhovetski <g.liakhovetski@....de>
To:	Simon Horman <horms@...ge.net.au>
cc:	Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>,
	Olof Johansson <olof@...om.net>,
	Linux-SH <linux-sh@...r.kernel.org>,
	linux-kernel@...r.kernel.org, Vinod Koul <vinod.koul@...el.com>
Subject: Re: [PATCH resend] shdma: fixup sh_dmae_get_partial() calculation
 error

Hi Simon

On Tue, 30 Jul 2013, Simon Horman wrote:

> [ Cc Vinod ]
> 
> On Tue, Jul 23, 2013 at 11:12:41PM -0700, Kuninori Morimoto wrote:
> > sh_desc->hw.tcr is controlling real data size,
> > and, register TCR is controlling data transfer count
> > which was xmit_shifted value of hw.tcr.
> > Current sh_dmae_get_partial() is calculating in different unit.
> > This patch fixes it.
> > 
> > Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>
> 
> Can I confirm that this was a regression introduced by
> 4f46f8ac80416b0e8fd3aba6a0d842205fb29140                   
> ("dmaengine: shdma: restore partial transfer calculation") ?

No, don't think so. That patch only restores what was accidentally deleted 
from the driver before. So, you cannot say, that before that patch the 
calculation was correct. And even the way it restores it was already wrong 
before. The error goes back to the original implementation:

commit c014906a870ce70e009def0c9d170ccabeb0be63
Author: Guennadi Liakhovetski <g.liakhovetski@....de>
Date:   Thu Feb 18 16:30:02 2010 +0000

    dmaengine: shdma: extend .device_terminate_all() to record partial transfer

Thanks
Guennadi

> 
> > ---
> > >> Guennadi
> > 
> > Could you please check this patch, and give it your Acked-by ?
> > 
> >  drivers/dma/sh/shdma.c |    4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/dma/sh/shdma.c b/drivers/dma/sh/shdma.c
> > index b70709b..d670b8b 100644
> > --- a/drivers/dma/sh/shdma.c
> > +++ b/drivers/dma/sh/shdma.c
> > @@ -388,8 +388,8 @@ static size_t sh_dmae_get_partial(struct shdma_chan *schan,
> >  						    shdma_chan);
> >  	struct sh_dmae_desc *sh_desc = container_of(sdesc,
> >  					struct sh_dmae_desc, shdma_desc);
> > -	return (sh_desc->hw.tcr - sh_dmae_readl(sh_chan, TCR)) <<
> > -		sh_chan->xmit_shift;
> > +	return sh_desc->hw.tcr -
> > +		(sh_dmae_readl(sh_chan, TCR) << sh_chan->xmit_shift);
> >  }
> >  
> >  /* Called from error IRQ or NMI */
> > -- 
> > 1.7.9.5
> > 
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> > the body of a message to majordomo@...r.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> 

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ