On Sun, Dec 06, 2020 at 07:05:34PM -0800, Joe Perches wrote:
> On Tue, 2020-12-01 at 14:35 -0800, mgr...@linux.intel.com wrote:
> > From: Seamus Kelly <seamus.ke...@intel.com>
> > 
> > Refactor the too large IOCTL function to call helper functions.
> 
> This should not be sent as a known poor patch as patch 21 of 22
> and then updated in patch 22 of 22 with a better style.
> 
> This should be sent in the as desired final form the first time
> so that people don't give you useless notes.

We will re-work the changes to better integrate this one in the earlier
changes.

--mark

> 
> > @@ -342,427 +323,84 @@ static int kmb_xlink_remove(struct platform_device 
> > *pdev)
> >   * IOCTL function for User Space access to xlink kernel functions
> >   *
> >   */
> > +int ioctl_connect(unsigned long arg);
> >  
> > 
> >  static long xlink_ioctl(struct file *file, unsigned int cmd, unsigned long 
> > arg)
> >  {
> > -   struct xlink_handle             devh    = {0};
> > -   struct xlinkopenchannel         op      = {0};
> > -   struct xlinkwritedata           wr      = {0};
> > -   struct xlinkreaddata            rd      = {0};
> > -   struct xlinkreadtobuffer        rdtobuf = {0};
> > -   struct xlinkconnect             con     = {0};
> > -   struct xlinkrelease             rel     = {0};
> > -   struct xlinkstartvpu            startvpu = {0};
> > -   struct xlinkcallback            cb      = {0};
> > -   struct xlinkgetdevicename       devn    = {0};
> > -   struct xlinkgetdevicelist       devl    = {0};
> > -   struct xlinkgetdevicestatus     devs    = {0};
> > -   struct xlinkbootdevice          boot    = {0};
> > -   struct xlinkresetdevice         res     = {0};
> > -   struct xlinkdevmode             devm    = {0};
> > -   struct xlinkregdevevent         regdevevent = {0};
> > -   u32 sw_device_id_list[XLINK_MAX_DEVICE_LIST_SIZE];
> > -   char name[XLINK_MAX_DEVICE_NAME_SIZE];
> > -   int interface = NULL_INTERFACE;
> > -   u32 device_status = 0;
> > -   u32 num_devices = 0;
> > -   u32 device_mode = 0;
> > -   u32 num_events = 0;
> > -   char filename[64];
> > -   u32 *ev_list;
> > -   u8 reladdr;
> > -   u8 *rdaddr;
> > -   u32 size;
> >     int rc;
> >  
> > 
> >     switch (cmd) {
> >     case XL_CONNECT:
> > -           if (copy_from_user(&con, (void __user *)arg,
> > -                              sizeof(struct xlinkconnect)))
> > -                   return -EFAULT;
> > -           if (copy_from_user(&devh, (void __user *)con.handle,
> > -                              sizeof(struct xlink_handle)))
> > -                   return -EFAULT;
> > -           rc = xlink_connect(&devh);
> > -           if (rc == X_LINK_SUCCESS) {
> > -                   if (copy_to_user((void __user *)con.handle,
> > -                                    &devh, sizeof(struct xlink_handle)))
> > -                           return -EFAULT;
> > -           }
> > -           if (copy_to_user((void __user *)con.return_code, (void *)&rc,
> > -                            sizeof(rc)))
> > -                   return -EFAULT;
> > +           rc = ioctl_connect(arg);
> >             break;
> 
> etc...
> 

Reply via email to