From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boaz Harrosh Subject: Re: [PATCH 13/14] scsi: utilize new device_add_cdev helper function Date: Tue, 21 Feb 2017 14:52:00 +0200 Message-ID: References: <1487653253-11497-1-git-send-email-logang@deltatee.com> <1487653253-11497-14-git-send-email-logang@deltatee.com> Reply-To: rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Sender: rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org In-Reply-To: <1487653253-11497-14-git-send-email-logang-OTvnGxWRz7hWk0Htik3J/w@public.gmane.org> List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , To: Logan Gunthorpe , Greg Kroah-Hartman , Dan Williams , Alexander Viro , Johannes Thumshirn , Jan Kara , Arnd Bergmann , Sajjan Vikas C , Dmitry Torokhov , Linus Walleij , Alexandre Courbot , Peter Huewe , Marcel Selhorst , Jarkko Sakkinen , Jason Gunthorpe , Olof Johansson , Doug Ledford , Sean Hefty , Hal Rosenstock , Dmitry Vyukov , Haggai Eran , Parav Pandit , Leon Cc: linux-scsi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, rtc-linux-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org, linux-gpio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-iio-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, osd-dev-yNzVSZO3znNg9hUCZPvPmw@public.gmane.org, linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-gpio@vger.kernel.org On 02/21/2017 07:00 AM, Logan Gunthorpe wrote: > Note: the chardev instance in osd_uld.c originally did not > set the kobject parent. Thus, I'm reasonably confident that because > of this, this code would have suffered from a minor use after free > bug if the cdev was open when the backing device was released. > > Signed-off-by: Logan Gunthorpe Cool thanks. And even a bug fix ACK-by: Boaz Harrosh > --- > drivers/scsi/osd/osd_uld.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/drivers/scsi/osd/osd_uld.c b/drivers/scsi/osd/osd_uld.c > index 243eab3..519be56 100644 > --- a/drivers/scsi/osd/osd_uld.c > +++ b/drivers/scsi/osd/osd_uld.c > @@ -473,18 +473,19 @@ static int osd_probe(struct device *dev) > goto err_put_disk; > } > > + device_initialize(&oud->class_dev); > + oud->class_dev.devt = MKDEV(SCSI_OSD_MAJOR, oud->minor); > + > /* init the char-device for communication with user-mode */ > cdev_init(&oud->cdev, &osd_fops); > oud->cdev.owner = THIS_MODULE; > - error = cdev_add(&oud->cdev, > - MKDEV(SCSI_OSD_MAJOR, oud->minor), 1); > + error = device_add_cdev(&oud->class_dev, &oud->cdev); > if (error) { > OSD_ERR("cdev_add failed\n"); > goto err_put_disk; > } > > /* class device member */ > - oud->class_dev.devt = oud->cdev.dev; > oud->class_dev.class = &osd_uld_class; > oud->class_dev.parent = dev; > oud->class_dev.release = __remove; > @@ -494,7 +495,7 @@ static int osd_probe(struct device *dev) > goto err_put_cdev; > } > > - error = device_register(&oud->class_dev); > + error = device_add(&oud->class_dev); > if (error) { > OSD_ERR("device_register failed => %d\n", error); > goto err_put_cdev; > -- You received this message because you are subscribed to "rtc-linux". Membership options at http://groups.google.com/group/rtc-linux . Please read http://groups.google.com/group/rtc-linux/web/checklist before submitting a driver. --- You received this message because you are subscribed to the Google Groups "rtc-linux" group. To unsubscribe from this group and stop receiving emails from it, send an email to rtc-linux+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/d/optout.