sysfs 二进制属性是否允许 return 多于一页数据?

Are sysfs binary attributes allowed to return more than one page of data?

我正在编写一个 linux 设备驱动程序,除其他外,它在 sysfs 中公开了一个只读二进制属性,其接口是

static ssize_t read_dump_fifo(struct file *filp, struct kobject *kobj, 
        struct bin_attribute *attr, char __user *buffer,
        loff_t f_pos, size_t size)

当我尝试 cathexdump 文件时,在前 4096 个字节之后,我的驱动程序将获得零大小的读取(对于 size 传递 0 ).为什么会发生这种情况,如果逻辑上不在 EOF,我的驱动程序应该如何响应? (0 的响应表示 EOF,但任何更长的响应似乎都会引发某种缓冲区溢出。目前,我 return -EINVAL。)

是否允许 sysfs 二进制属性 return 多于一页的信息?

原来我在注册属性的时候设置了最大尺寸为4096...哎呀