> -----Original Message-----
> From: Ferruh Yigit <ferruh.yi...@intel.com>
> Sent: Thursday, September 23, 2021 3:43 PM
> To: Apeksha Gupta <apeksha.gu...@nxp.com>;
> david.march...@redhat.com; andrew.rybche...@oktetlabs.ru;
> ferruh.yi...@intel.com
> Cc: dev@dpdk.org; Sachin Saxena <sachin.sax...@nxp.com>; Hemant
> Agrawal <hemant.agra...@nxp.com>
> Subject: [EXT] Re: [dpdk-dev] [PATCH v3 2/5] net/enetfec: add UIO support
> 
> Caution: EXT Email
> 
> On 9/9/2021 9:43 PM, Apeksha Gupta wrote:
> > Implemented the fec-uio driver in kernel. enetfec PMD uses
> > UIO interface to interact with "fec-uio" driver implemented in
> > kernel for PHY initialisation and for mapping the allocated memory
> > of register & BD from kernel to DPDK which gives access to
> > non-cacheable memory for BD.
> >
> > Signed-off-by: Sachin Saxena <sachin.sax...@nxp.com>
> > Signed-off-by: Apeksha Gupta <apeksha.gu...@nxp.com>
> 
> <...>
> 
> > +static struct uio_job enetfec_uio_job;
> > +int count;
> > +
> 
> This is a global non-static variable with a very generic name, when DPDK
> application compiled all other dpdk libraries/drivers and applicaiton will 
> have
> access to this variable.
> 
> Please make the variable 'static' if possible and add a driver prefix.
[Apeksha] Okay.

> 
> <...>
> 
> > +config_enetfec_uio(struct enetfec_private *fep)
> > +{
> > +     char uio_device_file_name[32];
> > +     struct uio_job *uio_job = NULL;
> > +
> > +     /* Mapping is done only one time */
> > +     if (count > 0) {
> > +             printf("Mapped!\n");
> > +             return 0;
> 
> 'printf' ? Should use logging macros.
[Apeksha] Yes, I agree.

> 
> 
> > +     }
> > +
> > +     uio_job = &enetfec_uio_job;
> > +
> > +     /* Find UIO device created by ENETFEC-UIO kernel driver */
> > +     memset(uio_device_file_name, 0, sizeof(uio_device_file_name));
> > +     snprintf(uio_device_file_name, sizeof(uio_device_file_name), "%s%d",
> > +                     FEC_UIO_DEVICE_FILE_NAME, uio_job->uio_minor_number);
> 
> I guess this assumes 'uio_minor_number' is '0', but how can you know? What
> if
> user bind another device first? Implemention your own uio handling is error
> prone.
[Apeksha] I do agree, We will update in v4 patch series.

> 
> > +
> > +     /* Open device file */
> > +     uio_job->uio_fd = open(uio_device_file_name, O_RDWR);
> > +     if (uio_job->uio_fd < 0) {
> > +             printf("US_UIO: Open Failed\n");
> > +             exit(1);
> 
> 'exit' ? Exit from all dpdk application because one of the drivers underneath
> failed? Please return an error.
[Apeksha] Okay.

Reply via email to