V2: Incorporated Alan Sterns review comments: Thanks for mentioning the READ_ONCE() semantics; I really had no clue. Note: I think it's also correct to NOT use the "irqsave" variants of spin_lock_irq/spin_unlock_irq in "usbfs_increase_memory_usage()". I am not sure if it's worth it? V1: patch for f_fs.c: > > > > + atomic64_sub(amount, &ffs->mmap_mem_usage); Greg KH: > > > Why not use a real lock instead of trying to do a fake one with > > > this atomic variable? Ingo: > > I just took the code from "drivers/usb/core/devio.c", > > "usbfs_increase_memory_usage()". > > ... > > You are of course right: You can easily use a lock here and this > > makes the intention of the code a lot clearer I guess. > > > > I will modify the patch accordingly. Alan Stern: > If you also feel like making a similar change to the code in devio.c, > it would be welcome. Ingo Rohloff (1): USB: usbfs: Use a spinlock instead of atomic accesses to tally used memory. drivers/usb/core/devio.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) -- 2.17.1