compat: add PTR_ERR_OR_ZERO
Imported from Linux, this is nice to have along with the other ERR_PTR helper macros. Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
This commit is contained in:
@@ -53,6 +53,31 @@ static inline void * __must_check ERR_CAST(__force const void *ptr)
|
||||
return (void *) ptr;
|
||||
}
|
||||
|
||||
/**
|
||||
* PTR_ERR_OR_ZERO - Extract the error code from a pointer if it has one.
|
||||
* @ptr: A potential error pointer.
|
||||
*
|
||||
* Convenience function that can be used inside a function that returns
|
||||
* an error code to propagate errors received as error pointers.
|
||||
* For example, ``return PTR_ERR_OR_ZERO(ptr);`` replaces:
|
||||
*
|
||||
* .. code-block:: c
|
||||
*
|
||||
* if (IS_ERR(ptr))
|
||||
* return PTR_ERR(ptr);
|
||||
* else
|
||||
* return 0;
|
||||
*
|
||||
* Return: The error code within @ptr if it is an error pointer; 0 otherwise.
|
||||
*/
|
||||
static inline int __must_check PTR_ERR_OR_ZERO(__force const void *ptr)
|
||||
{
|
||||
if (IS_ERR(ptr))
|
||||
return PTR_ERR(ptr);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _LINUX_ERR_H */
|
||||
|
||||
Reference in New Issue
Block a user