On Fri, Apr 04, 2014 at 04:31:05PM -0600, Stephen Warren wrote: > From: Stephen Warren <swarren at nvidia.com> > > BIT_WORD() truncates rather than rounds, so the loops in > syncpt_thresh_isr() and _host1x_intr_disable_all_syncpt_intrs() use <= > rather than < in an attempt to process the correct number of registers > when rounding of the conversion of count of bits to count of words is > necessary. However, when rounding isn't necessary because the value is > already a multiple of the divisor (as is the case for all values of > nb_pts the code actually sees), this causes one too many registers to > be processed. > > Solve this by using and explicit DIV_ROUND_UP() call, rather than > BIT_WORD(), and comparing with < rather than <=. > > Signed-off-by: Stephen Warren <swarren at nvidia.com> > --- > v2: Use DIV_ROUND_UP rather than BITS_TO_LONGS to avoid problems on 64-bit. > --- > drivers/gpu/host1x/hw/intr_hw.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-)
If I understand correctly there's no immediate need for this to go to stable kernels, nor for it to be queued for 3.15, right? That is the potential extra write isn't causing any harm on actual hardware, is it? In that case I'll queue this up for 3.16. Thierry -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: not available URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20140407/c6c11806/attachment-0001.sig>