Re: This patch triggers a bad gcc bug (was Re: [PATCH] force inlining of some byteswap operations)

From: Arnd Bergmann
Date: Mon Apr 18 2016 - 10:22:39 EST


On Monday 18 April 2016 09:12:41 Josh Poimboeuf wrote:
> On Mon, Apr 18, 2016 at 04:07:51PM +0200, Arnd Bergmann wrote:
> > On Monday 18 April 2016 08:39:32 Josh Poimboeuf wrote:
> > >
> > > I agree. So how should we work around the bug in this case? There have
> > > been several suggestions:
> > >
> > > - change wwn_to_u64() to __always_inline
> > >
> > > - change qla2x00_get_host_fabric_name() to skip the unnecessary call to
> > > wwn_to_u64()
> > >
> > > - revert one of the two commits:
> > > bc27fb68aaad ("include/uapi/linux/byteorder, swab: force inlining of some byteswap operations")
> > > ef3fb2422ffe ("scsi: fc: use get/put_unaligned64 for wwn access")
> >
> > What about the patch to change get_unaligned_be64() that I posted?
> >
> > I think we want to merge that anyway, I just don't know if that helps
> > with this particular problem as well.
>
> I replied to your other email about that -- it doesn't seem to help this
> issue.
>

Ok, I see. I had problems with my mail server last week, your reply
must have been a victim of that as I never saw it (found it on the
web archive now).

I'd vote for the wwn_to_u64 change then as it should prevent the
same thing from happining in other drivers. I would prefer not to
see ef3fb2422ffe reverted, as that works around another gcc-6 bug
on ARM.

Arnd