Messages in this thread | | | From | "Liu, Yi L" <> | Subject | RE: [PATCH v4 04/12] iommu/vt-d: Add 256-bit invalidation descriptor support | Date | Thu, 8 Nov 2018 05:48:37 +0000 |
| |
> 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
| |