Re: [PATCH] blk-mq: fix alignment mismatch.

From: Nathan Chancellor
Date: Wed Mar 31 2021 - 17:58:49 EST


Hi Jian,

On Wed, Mar 31, 2021 at 02:27:03PM -0700, Jian Cai wrote:
> Hi Nathan,
>
> I just realized you already proposed solutions for skipping the check
> in https://lore.kernel.org/linux-block/20210310225240.4epj2mdmzt4vurr3@archlinux-ax161/#t.
> Do you have any plans to send them for review?
>
> Thanks,
> Jian

I was hoping to gather some feedback on which option would be preferred
by Jens and the other ClangBuiltLinux folks before I sent them along. I
can send the first just to see what kind of feedback I can gather.

Cheers,
Nathan

> On Tue, Mar 30, 2021 at 6:31 PM Jian Cai <jiancai@xxxxxxxxxx> wrote:
> >
> > Thanks for all the information. I'll check for similar instances and
> > send an updated version.
> >
> >
> > On Tue, Mar 30, 2021 at 5:26 PM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
> > >
> > > On 3/30/21 4:29 PM, Nathan Chancellor wrote:
> > > > Hi Jian,
> > > >
> > > > On Tue, Mar 30, 2021 at 04:02:49PM -0700, Jian Cai wrote:
> > > >> This fixes the mismatch of alignments between csd and its use as an
> > > >> argument to smp_call_function_single_async, which causes build failure
> > > >> when -Walign-mismatch in Clang is used.
> > > >>
> > > >> Link:
> > > >> http://crrev.com/c/1193732
> > > >>
> > > >> Suggested-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> > > >> Signed-off-by: Jian Cai <jiancai@xxxxxxxxxx>
> > > >
> > > > Thanks for the patch. This is effectively a revert of commit
> > > > 4ccafe032005 ("block: unalign call_single_data in struct request"),
> > > > which I had brought up in this thread:
> > > >
> > > > https://lore.kernel.org/r/20210310182307.zzcbi5w5jrmveld4@archlinux-ax161/
> > > >
> > > > This is obviously a correct fix, I am not just sure what the impact to
> > > > 'struct request' will be.
> > > >
> > >
> > > As commit 4ccafe032005 states, it increases the request structure size.
> > > Given the exchange referenced above, I think we'll need to disable
> > > the warning in the block code.
> > >
> > > Thanks,
> > > Guenter
> > >
> > > > Cheers,
> > > > Nathan
> > > >
> > > >> ---
> > > >> include/linux/blkdev.h | 2 +-
> > > >> 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >>
> > > >> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
> > > >> index bc6bc8383b43..3b92330d95ad 100644
> > > >> --- a/include/linux/blkdev.h
> > > >> +++ b/include/linux/blkdev.h
> > > >> @@ -231,7 +231,7 @@ struct request {
> > > >> unsigned long deadline;
> > > >>
> > > >> union {
> > > >> - struct __call_single_data csd;
> > > >> + call_single_data_t csd;
> > > >> u64 fifo_time;
> > > >> };
> > > >>
> > > >> --
> > > >> 2.31.0.291.g576ba9dcdaf-goog
> > > >>
> > >