diff mbox series

[v2,27/27] iio: Drop iio_device_claim_direct_scoped() and related infrastructure

Message ID 20250209180624.701140-28-jic23@kernel.org (mailing list archive)
State Accepted
Headers show
Series iio: improve handling of direct mode claim and release | expand

Commit Message

Jonathan Cameron Feb. 9, 2025, 6:06 p.m. UTC
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Scoped conditional automated cleanup turned out to be harder to work
with than expected. Despite several attempts to find a better solution
non have surfaced. As such rip it out of the IIO code.

Reviewed-by: David Lechner <dlechner@baylibre.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
 include/linux/iio/iio.h | 27 ---------------------------
 1 file changed, 27 deletions(-)

Comments

Nuno Sá Feb. 17, 2025, 10:57 a.m. UTC | #1
On Sun, 2025-02-09 at 18:06 +0000, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> Scoped conditional automated cleanup turned out to be harder to work
> with than expected. Despite several attempts to find a better solution
> non have surfaced. As such rip it out of the IIO code.
> 
> Reviewed-by: David Lechner <dlechner@baylibre.com>
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> ---

Reviewed-by: Nuno Sa <nuno.sa@analog.com>

>  include/linux/iio/iio.h | 27 ---------------------------
>  1 file changed, 27 deletions(-)
> 
> diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
> index 5ed03e36178f..07a0e8132e88 100644
> --- a/include/linux/iio/iio.h
> +++ b/include/linux/iio/iio.h
> @@ -9,7 +9,6 @@
>  
>  #include <linux/device.h>
>  #include <linux/cdev.h>
> -#include <linux/cleanup.h>
>  #include <linux/compiler_types.h>
>  #include <linux/slab.h>
>  #include <linux/iio/types.h>
> @@ -688,32 +687,6 @@ static inline void iio_device_release_direct(struct
> iio_dev *indio_dev)
>  	__release(indio_dev);
>  }
>  
> -/*
> - * This autocleanup logic is normally used via
> - * iio_device_claim_direct_scoped().
> - */
> -DEFINE_GUARD(iio_claim_direct, struct iio_dev *,
> iio_device_claim_direct_mode(_T),
> -	     iio_device_release_direct_mode(_T))
> -
> -DEFINE_GUARD_COND(iio_claim_direct, _try, ({
> -			struct iio_dev *dev;
> -			int d = iio_device_claim_direct_mode(_T);
> -
> -			if (d < 0)
> -				dev = NULL;
> -			else
> -				dev = _T;
> -			dev;
> -		}))
> -
> -/**
> - * iio_device_claim_direct_scoped() - Scoped call to iio_device_claim_direct.
> - * @fail: What to do on failure to claim device.
> - * @iio_dev: Pointer to the IIO devices structure
> - */
> -#define iio_device_claim_direct_scoped(fail, iio_dev) \
> -	scoped_cond_guard(iio_claim_direct_try, fail, iio_dev)
> -
>  int iio_device_claim_buffer_mode(struct iio_dev *indio_dev);
>  void iio_device_release_buffer_mode(struct iio_dev *indio_dev);
>
diff mbox series

Patch

diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
index 5ed03e36178f..07a0e8132e88 100644
--- a/include/linux/iio/iio.h
+++ b/include/linux/iio/iio.h
@@ -9,7 +9,6 @@ 
 
 #include <linux/device.h>
 #include <linux/cdev.h>
-#include <linux/cleanup.h>
 #include <linux/compiler_types.h>
 #include <linux/slab.h>
 #include <linux/iio/types.h>
@@ -688,32 +687,6 @@  static inline void iio_device_release_direct(struct iio_dev *indio_dev)
 	__release(indio_dev);
 }
 
-/*
- * This autocleanup logic is normally used via
- * iio_device_claim_direct_scoped().
- */
-DEFINE_GUARD(iio_claim_direct, struct iio_dev *, iio_device_claim_direct_mode(_T),
-	     iio_device_release_direct_mode(_T))
-
-DEFINE_GUARD_COND(iio_claim_direct, _try, ({
-			struct iio_dev *dev;
-			int d = iio_device_claim_direct_mode(_T);
-
-			if (d < 0)
-				dev = NULL;
-			else
-				dev = _T;
-			dev;
-		}))
-
-/**
- * iio_device_claim_direct_scoped() - Scoped call to iio_device_claim_direct.
- * @fail: What to do on failure to claim device.
- * @iio_dev: Pointer to the IIO devices structure
- */
-#define iio_device_claim_direct_scoped(fail, iio_dev) \
-	scoped_cond_guard(iio_claim_direct_try, fail, iio_dev)
-
 int iio_device_claim_buffer_mode(struct iio_dev *indio_dev);
 void iio_device_release_buffer_mode(struct iio_dev *indio_dev);