> 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 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu