Message ID | 20191121200115.24846-1-navid.emamdoost@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Input: Fix memory leak in psxpad_spi_probe | expand |
Hi Navid, On Thu, Nov 21, 2019 at 02:01:11PM -0600, Navid Emamdoost wrote: > In the implementation of psxpad_spi_probe() the allocated memory for > pdev is leaked if psxpad_spi_init_ff() or input_register_polled_device() > fail. The solution is using device managed allocation, like the one used > for pad. Perform the allocation using > devm_input_allocate_polled_device(). > > Fixes: 8be193c7b1f4 ("Input: add support for PlayStation 1/2 joypads connected via SPI") > Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> This is fixed in the current version of the driver, but you can send it to stable@gerkernel.orf with my Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> > --- > drivers/input/joystick/psxpad-spi.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/input/joystick/psxpad-spi.c b/drivers/input/joystick/psxpad-spi.c > index 7eee1b0e360f..99a6052500ca 100644 > --- a/drivers/input/joystick/psxpad-spi.c > +++ b/drivers/input/joystick/psxpad-spi.c > @@ -292,7 +292,7 @@ static int psxpad_spi_probe(struct spi_device *spi) > if (!pad) > return -ENOMEM; > > - pdev = input_allocate_polled_device(); > + pdev = devm_input_allocate_polled_device(&spi->dev); > if (!pdev) { > dev_err(&spi->dev, "failed to allocate input device\n"); > return -ENOMEM; > -- > 2.17.1 >
On Fri, Nov 22, 2019 at 11:02:08AM -0800, Dmitry Torokhov wrote: > Hi Navid, > > On Thu, Nov 21, 2019 at 02:01:11PM -0600, Navid Emamdoost wrote: > > In the implementation of psxpad_spi_probe() the allocated memory for > > pdev is leaked if psxpad_spi_init_ff() or input_register_polled_device() > > fail. The solution is using device managed allocation, like the one used > > for pad. Perform the allocation using > > devm_input_allocate_polled_device(). > > > > Fixes: 8be193c7b1f4 ("Input: add support for PlayStation 1/2 joypads connected via SPI") > > Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> > > This is fixed in the current version of the driver, but you can send it > to stable@gerkernel.orf with my Was it fixed by any specific patch, or just a side-affect of some other larger change? thanks, greg k-h
On Tue, Nov 26, 2019 at 10:34:34AM +0100, Greg Kroah-Hartman wrote: > On Fri, Nov 22, 2019 at 11:02:08AM -0800, Dmitry Torokhov wrote: > > Hi Navid, > > > > On Thu, Nov 21, 2019 at 02:01:11PM -0600, Navid Emamdoost wrote: > > > In the implementation of psxpad_spi_probe() the allocated memory for > > > pdev is leaked if psxpad_spi_init_ff() or input_register_polled_device() > > > fail. The solution is using device managed allocation, like the one used > > > for pad. Perform the allocation using > > > devm_input_allocate_polled_device(). > > > > > > Fixes: 8be193c7b1f4 ("Input: add support for PlayStation 1/2 joypads connected via SPI") > > > Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> > > > > This is fixed in the current version of the driver, but you can send it > > to stable@gerkernel.orf with my > > Was it fixed by any specific patch, or just a side-affect of some other > larger change? It was fixed "by accident" when I converted the driver from using input_polled_dev to standard input device in polled mode. Thanks.
diff --git a/drivers/input/joystick/psxpad-spi.c b/drivers/input/joystick/psxpad-spi.c index 7eee1b0e360f..99a6052500ca 100644 --- a/drivers/input/joystick/psxpad-spi.c +++ b/drivers/input/joystick/psxpad-spi.c @@ -292,7 +292,7 @@ static int psxpad_spi_probe(struct spi_device *spi) if (!pad) return -ENOMEM; - pdev = input_allocate_polled_device(); + pdev = devm_input_allocate_polled_device(&spi->dev); if (!pdev) { dev_err(&spi->dev, "failed to allocate input device\n"); return -ENOMEM;
In the implementation of psxpad_spi_probe() the allocated memory for pdev is leaked if psxpad_spi_init_ff() or input_register_polled_device() fail. The solution is using device managed allocation, like the one used for pad. Perform the allocation using devm_input_allocate_polled_device(). Fixes: 8be193c7b1f4 ("Input: add support for PlayStation 1/2 joypads connected via SPI") Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com> --- drivers/input/joystick/psxpad-spi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)