[dpdk-dev] [PATCH] eal: fix check number of bytes from read function
Jastrzebski, MichalX K
michalx.k.jastrzebski at intel.com
Thu Jul 21 22:50:41 CEST 2016
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> Sent: Thursday, July 21, 2016 4:36 PM
> To: Jastrzebski, MichalX K <michalx.k.jastrzebski at intel.com>
> Cc: dev at dpdk.org; Richardson, Bruce <bruce.richardson at intel.com>;
> Kobylinski, MichalX <michalx.kobylinski at intel.com>; Gonzalez Monroy,
> Sergio <sergio.gonzalez.monroy at intel.com>; david.marchand at 6wind.com
> Subject: Re: [dpdk-dev] [PATCH] eal: fix check number of bytes from read
> function
>
> Hi,
>
> 2016-07-20 16:24, Michal Jastrzebski:
> > - if (read(fd, &page, sizeof(uint64_t)) < 0) {
> > +
> > + retval = read(fd, &page, sizeof(uint64_t));
> > + if (retval < 0) {
> > RTE_LOG(ERR, EAL, "%s(): cannot read /proc/self/pagemap:
> %s\n",
> > __func__, strerror(errno));
> > close(fd);
> > return RTE_BAD_PHYS_ADDR;
> > + } else if (retval >= 0 && retval < (int)sizeof(uint64_t)) {
>
Hi Thomas,
> I have 4 comments about the above line:
That's too much for one line. I should improve next time:)
> - the check retval >= 0 is not needed because implied by else
> - why not checking retval != sizeof(uint64_t) as it is the exact expected
> value?
Yes, it is better solution,
> - (int)sizeof(uint64_t) can be replaced by 8 but it's shorter ;)
I didn't want to change all invokes of read() function here.
I can use some macro:
#define PFN_MASK_SIZE 8
How do You think?
> - only 1 space is required between } and else
>
> > + RTE_LOG(ERR, EAL, "%s(): read %d bytes from
> /proc/self/pagemap "
> > + "but expected %d: %s\n",
> > + __func__, retval, (int)sizeof(uint64_t),
> strerror(errno));
>
> Are you sure errno is meaningful here?
I think it is not. Will send v2.
>
> > + close(fd);
> > + return RTE_BAD_PHYS_ADDR;
> > }
Thanks for a review
Michal.
More information about the dev
mailing list