• A
    kfifo: sanitize *_user error handling · 64ce1037
    Andi Kleen 提交于
    Right now for kfifo_*_user it's not easily possible to distingush between
    a user copy failing and the FIFO not containing enough data.  The problem
    is that both conditions are multiplexed into the same return code.
    
    Avoid this by moving the "copy length" into a separate output parameter
    and only return 0/-EFAULT in the main return value.
    
    I didn't fully adapt the weird "record" variants, those seem
    to be unused anyways and were rather messy (should they be just removed?)
    
    I would appreciate some double checking if I did all the conversions
    correctly.
    Signed-off-by: NAndi Kleen <ak@linux.intel.com>
    Cc: Stefani Seibold <stefani@seibold.net>
    Cc: Roland Dreier <rdreier@cisco.com>
    Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Cc: Andy Walls <awalls@radix.net>
    Cc: Vikram Dhillon <dhillonv10@gmail.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    64ce1037
kfifo.h 16.8 KB