mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-21 23:57:36 -04:00
bitmap: drop bitmap_print_to_pagebuf()
Now that all users of bitmap_print_to_pagebuf() are switched to the alternatives, drop the function. Signed-off-by: Yury Norov <ynorov@nvidia.com>
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
#include <linux/types.h>
|
||||
|
||||
int bitmap_parse_user(const char __user *ubuf, unsigned int ulen, unsigned long *dst, int nbits);
|
||||
int bitmap_print_to_pagebuf(bool list, char *buf, const unsigned long *maskp, int nmaskbits);
|
||||
int bitmap_print_bitmask_to_buf(char *buf, const unsigned long *maskp, int nmaskbits,
|
||||
loff_t off, size_t count);
|
||||
int bitmap_print_list_to_buf(char *buf, const unsigned long *maskp, int nmaskbits,
|
||||
|
||||
@@ -39,32 +39,6 @@ int bitmap_parse_user(const char __user *ubuf,
|
||||
}
|
||||
EXPORT_SYMBOL(bitmap_parse_user);
|
||||
|
||||
/**
|
||||
* bitmap_print_to_pagebuf - convert bitmap to list or hex format ASCII string
|
||||
* @list: indicates whether the bitmap must be list
|
||||
* @buf: page aligned buffer into which string is placed
|
||||
* @maskp: pointer to bitmap to convert
|
||||
* @nmaskbits: size of bitmap, in bits
|
||||
*
|
||||
* Output format is a comma-separated list of decimal numbers and
|
||||
* ranges if list is specified or hex digits grouped into comma-separated
|
||||
* sets of 8 digits/set. Returns the number of characters written to buf.
|
||||
*
|
||||
* It is assumed that @buf is a pointer into a PAGE_SIZE, page-aligned
|
||||
* area and that sufficient storage remains at @buf to accommodate the
|
||||
* bitmap_print_to_pagebuf() output. Returns the number of characters
|
||||
* actually printed to @buf, excluding terminating '\0'.
|
||||
*/
|
||||
int bitmap_print_to_pagebuf(bool list, char *buf, const unsigned long *maskp,
|
||||
int nmaskbits)
|
||||
{
|
||||
ptrdiff_t len = PAGE_SIZE - offset_in_page(buf);
|
||||
|
||||
return list ? scnprintf(buf, len, "%*pbl\n", nmaskbits, maskp) :
|
||||
scnprintf(buf, len, "%*pb\n", nmaskbits, maskp);
|
||||
}
|
||||
EXPORT_SYMBOL(bitmap_print_to_pagebuf);
|
||||
|
||||
/**
|
||||
* bitmap_print_to_buf - convert bitmap to list or hex format ASCII string
|
||||
* @list: indicates whether the bitmap must be list
|
||||
@@ -101,7 +75,7 @@ static int bitmap_print_to_buf(bool list, char *buf, const unsigned long *maskp,
|
||||
* @off: in the string from which we are copying, We copy to @buf
|
||||
* @count: the maximum number of bytes to print
|
||||
*
|
||||
* The bitmap_print_to_pagebuf() is used indirectly via its cpumap wrapper
|
||||
* The sprintf("%*pb[l]") is used indirectly via its cpumap wrapper
|
||||
* cpumap_print_to_pagebuf() or directly by drivers to export hexadecimal
|
||||
* bitmask and decimal list to userspace by sysfs ABI.
|
||||
* Drivers might be using a normal attribute for this kind of ABIs. A
|
||||
@@ -111,18 +85,11 @@ static int bitmap_print_to_buf(bool list, char *buf, const unsigned long *maskp,
|
||||
* struct device_attribute *attr, char *buf)
|
||||
* {
|
||||
* ...
|
||||
* return bitmap_print_to_pagebuf(true, buf, &mask, nr_trig_max);
|
||||
* return scnprintf(buf, PAGE_SIZE - offset_in_page(buf), nr_trig_max, &mask);
|
||||
* }
|
||||
*
|
||||
* show entry of attribute has no offset and count parameters and this
|
||||
* means the file is limited to one page only.
|
||||
* bitmap_print_to_pagebuf() API works terribly well for this kind of
|
||||
* normal attribute with buf parameter and without offset, count::
|
||||
*
|
||||
* bitmap_print_to_pagebuf(bool list, char *buf, const unsigned long *maskp,
|
||||
* int nmaskbits)
|
||||
* {
|
||||
* }
|
||||
*
|
||||
* The problem is once we have a large bitmap, we have a chance to get a
|
||||
* bitmask or list more than one page. Especially for list, it could be
|
||||
@@ -149,7 +116,7 @@ static int bitmap_print_to_buf(bool list, char *buf, const unsigned long *maskp,
|
||||
*
|
||||
* The role of cpumap_print_bitmask_to_buf() and cpumap_print_list_to_buf()
|
||||
* is similar with cpumap_print_to_pagebuf(), the difference is that
|
||||
* bitmap_print_to_pagebuf() mainly serves sysfs attribute with the assumption
|
||||
* scnprintf("%*pb[l]") mainly serves sysfs attribute with the assumption
|
||||
* the destination buffer is exactly one page and won't be more than one page.
|
||||
* cpumap_print_bitmask_to_buf() and cpumap_print_list_to_buf(), on the other
|
||||
* hand, mainly serves bin_attribute which doesn't work with exact one page,
|
||||
@@ -158,7 +125,8 @@ static int bitmap_print_to_buf(bool list, char *buf, const unsigned long *maskp,
|
||||
*
|
||||
* WARNING!
|
||||
*
|
||||
* This function is not a replacement for sprintf() or bitmap_print_to_pagebuf().
|
||||
* This function is not a replacement for sprintf().
|
||||
*
|
||||
* It is intended to workaround sysfs limitations discussed above and should be
|
||||
* used carefully in general case for the following reasons:
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user