On Sat, 29 Sep 2018, Jia-Ju Bai wrote:
Why? Forcing all the report buffer to be limited to be non-sleepingIn my opinion, I prefer this way.picolcd_send_and_wait (acquire a spinlock)Hm, so it's always drivers calling out into core in atomic context. So
hid_hw_request
__hid_request
hid_alloc_report_buf(GFP_KERNEL)
picolcd_reset (acquire a spinlock)
hid_hw_request
__hid_request
hid_alloc_report_buf(GFP_KERNEL)
lg4ff_play (acquire a spinlock)
hid_hw_request
__hid_request
hid_alloc_report_buf(GFP_KERNEL)
lg4ff_set_autocenter_ffex (acquire a spinlock)
hid_hw_request
__hid_request
hid_alloc_report_buf(GFP_KERNEL)
either we take this, and put our bets on being able to allocate the buffer
without sleeping,
allocations just because of two drivers, looks like an overkill, and
actually calls for more issues (as GFP_ATOMIC is of course in principle
less likely to succeed).