• Takashi Iwai's avatar
    ALSA: memalloc: Count continuous pages in vmalloc buffer handler · bda36b0f
    Takashi Iwai authored
    This is an enhancement for the SG-style page handling in vmalloc
    buffer handler to calculate the continuous pages.
    When snd_sgbuf_get_chunk_size() is called for a vmalloc buffer,
    currently we return only the size that fits into a single page.
    However, this API call is rather supposed for obtaining the continuous
    pages and most of vmalloc or noncontig buffers do have lots of
    continuous pages indeed.  So, in this patch, the callback now
    calculates the possibly continuous pages up to the given size limit.
    
    Note that the end address in the function is calculated from the last
    byte, hence it's one byte shorter.  This is because ofs + size can be
    above the actual buffer size boundary.
    
    Until now, this feature isn't really used, but it'll become useful in
    a later patch that adds the non-contiguous buffer type that shares the
    same callback function as vmalloc.
    
    Link: https://lore.kernel.org/r/20210812113818.6479-1-tiwai@suse.de
    Link: https://lore.kernel.org/r/20210813081645.4680-1-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    bda36b0f
memalloc.c 13 KB