lkml.org 
[lkml]   [2018]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [PATCH v4 04/12] iommu/vt-d: Add 256-bit invalidation descriptor support
Date
> From: Liu, Yi L
> Sent: Thursday, November 8, 2018 1:45 PM
> > >>>> + memcpy(desc, qi->desc + (wait_index << shift),
> > >>>
> > >>> Would "memcpy(desc, (unsigned long long) (qi->desc + (wait_index
> > >>> << shift)," be more safe?
> > >>
> > >> Can that be compiled? memcpy() requires a "const void *" for the
> > >> second
> > parameter.
> > >> By the way, why it's safer with this casting?
> > >
> > > This is just an example. My point is the possibility that "qi->desc
> > > + (wait_index <<
> > shift)"
> > > would be treated as "qi->desc plus (wait_index <<
> > > shift)*sizeof(*qi->desc)". Is it possible for kernel build?
> >
> > qi->desc is of type of "void *".
>
> no, I don’t think so... Refer to the code below. Even it has no correctness issue her,
> It's not due to qi->desc is "void *" type...
>
> struct qi_desc {
> - u64 low, high;
> + u64 qw0;
> + u64 qw1;
> + u64 qw2;
> + u64 qw3;
> };

Oops, just see you modified it to be "void *" in this patch. Ok, then this is fair enough.

Thanks,
Yi Liu
\
 
 \ /
  Last update: 2018-11-08 06:49    [W:0.328 / U:0.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site