Re: [PATCH] usb: gadget: f_fs: use memdup_user

From: Al Viro
Date: Sat May 20 2017 - 23:26:32 EST


On Sat, May 13, 2017 at 11:05:30AM +0300, Dan Carpenter wrote:

> > + data = memdup_user(buf, len);
> > + if (unlikely(IS_ERR(data)))
>
> Don't use likely/unlikely() here. It's not a fast path.

More to the point,

#define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO)
static inline bool __must_check IS_ERR(__force const void *ptr)
{
return IS_ERR_VALUE((unsigned long)ptr);
}

IOW, IS_ERR() already produces unlikely(....), fast path or not.