On Fri, Mar 15, 2019 at 12:55:16AM +0800, John Garry wrote: > Currently the driver does not call request_region() prior to > accessing IO port regions in f71805f_init(), so add it. > > Signed-off-by: John Garry <john.garry@xxxxxxxxxx> > --- > drivers/hwmon/f71805f.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/drivers/hwmon/f71805f.c b/drivers/hwmon/f71805f.c > index 73c681162653..910082c7f184 100644 > --- a/drivers/hwmon/f71805f.c > +++ b/drivers/hwmon/f71805f.c > @@ -1617,10 +1617,21 @@ static int __init f71805f_init(void) > int err; > unsigned short address; > struct f71805f_sio_data sio_data; > + struct resource *res; > + size_t size = 0x4e - 0x2e + SIO_REG_ADDR + 4; > + > + /* Request the whole 0x2e - 0x4e region */ > + res = request_region(0x2e, size, "f71805f"); request_muxed_region() would be a better choice here since it doesn't bail out immediately if the region is temporarily busy. Thanks, Guenter > + if (!res) > + return -EBUSY; > > if (f71805f_find(0x2e, &address, &sio_data) > - && f71805f_find(0x4e, &address, &sio_data)) > + && f71805f_find(0x4e, &address, &sio_data)) { > + release_region(0x2e, size); > return -ENODEV; > + } > + > + release_region(0x2e, size); > > err = platform_driver_register(&f71805f_driver); > if (err) > -- > 2.17.1 >