Skip to content
  • Ming Lei's avatar
    firmware loader: always let firmware_buf own the pages buffer · 1f2b7959
    Ming Lei authored
    
    
    This patch always let firmware_buf own the pages buffer allocated
    inside firmware_data_write, and add all instances of firmware_buf
    into the firmware cache global list. Also introduce one private field
    in 'struct firmware', so release_firmware will see the instance of
    firmware_buf associated with the current firmware instance, then just
    'free' the instance of firmware_buf.
    
    The firmware_buf instance represents one pages buffer for one
    firmware image, so lots of firmware loading requests can share
    the same firmware_buf instance if they request the same firmware
    image file.
    
    This patch will make implementation of the following cache_firmware/
    uncache_firmware very easy and simple.
    
    In fact, the patch improves request_formware/release_firmware:
    
            - only request userspace to write firmware image once if
    	several devices share one same firmware image and its drivers
    	call request_firmware concurrently.
    
    Signed-off-by: default avatarMing Lei <ming.lei@canonical.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    1f2b7959