Message ID | 1606571059-13974-1-git-send-email-LinoSanfilippo@gmx.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RESEND,1/2] iio:core: Introduce unlocked version of iio_map_array_unregister() | expand |
On Sat, 28 Nov 2020 15:22:16 +0100 Lino Sanfilippo <LinoSanfilippo@gmx.de> wrote: > Hi Jonathan, > > On 28.11.20 at 14:54, Jonathan Cameron wrote: > > > A few notes to make it harder for people to do that in future. > > 1. Don't send patch series (or new versions of older patches) in reply > > to an existing thread. They get lost and difficult to pull out. > > b4 can't automatically figure out which patches to pull from that > > original thread for example. > > 2. Always version number whole series with same number, even if some patches > > are new. So this should be v3. > > > > Thanks for these hints, I will keep it in mind for future patch submissions. Mailing list seems to have recovered so I can use b4 again :) Applied to the togreg branch of iio.git and pushed out as testing so the autobuilders can try to find anything we missed. Thanks, Jonathan > > Regards, > Lino >
diff --git a/drivers/iio/inkern.c b/drivers/iio/inkern.c index ede99e0..39c1d63 100644 --- a/drivers/iio/inkern.c +++ b/drivers/iio/inkern.c @@ -24,6 +24,21 @@ struct iio_map_internal { static LIST_HEAD(iio_map_list); static DEFINE_MUTEX(iio_map_list_lock); +static int iio_map_array_unregister_locked(struct iio_dev *indio_dev) +{ + int ret = -ENODEV; + struct iio_map_internal *mapi, *next; + + list_for_each_entry_safe(mapi, next, &iio_map_list, l) { + if (indio_dev == mapi->indio_dev) { + list_del(&mapi->l); + kfree(mapi); + ret = 0; + } + } + return ret; +} + int iio_map_array_register(struct iio_dev *indio_dev, struct iio_map *maps) { int i = 0, ret = 0; @@ -57,18 +72,12 @@ EXPORT_SYMBOL_GPL(iio_map_array_register); */ int iio_map_array_unregister(struct iio_dev *indio_dev) { - int ret = -ENODEV; - struct iio_map_internal *mapi, *next; + int ret; mutex_lock(&iio_map_list_lock); - list_for_each_entry_safe(mapi, next, &iio_map_list, l) { - if (indio_dev == mapi->indio_dev) { - list_del(&mapi->l); - kfree(mapi); - ret = 0; - } - } + ret = iio_map_array_unregister_locked(indio_dev); mutex_unlock(&iio_map_list_lock); + return ret; } EXPORT_SYMBOL_GPL(iio_map_array_unregister);