diff --git a/arch/arm/src/cxd56xx/cxd56_powermgr_procfs.c b/arch/arm/src/cxd56xx/cxd56_powermgr_procfs.c index 2ea95ab700..947bf48d58 100644 --- a/arch/arm/src/cxd56xx/cxd56_powermgr_procfs.c +++ b/arch/arm/src/cxd56xx/cxd56_powermgr_procfs.c @@ -114,6 +114,7 @@ const struct procfs_operations cxd56_powermgr_procfs_operations = cxd56_powermgr_procfs_close, /* close */ cxd56_powermgr_procfs_read, /* read */ NULL, /* write */ + NULL, /* poll */ cxd56_powermgr_procfs_dup, /* dup */ cxd56_powermgr_procfs_opendir, /* opendir */ cxd56_powermgr_procfs_closedir, /* closedir */ diff --git a/arch/arm/src/cxd56xx/cxd56_usbdev.c b/arch/arm/src/cxd56xx/cxd56_usbdev.c index f725a55b54..e54c756802 100644 --- a/arch/arm/src/cxd56xx/cxd56_usbdev.c +++ b/arch/arm/src/cxd56xx/cxd56_usbdev.c @@ -618,6 +618,7 @@ const struct procfs_operations cxd56_usbdev_operations = cxd56_usbdev_close, /* close */ cxd56_usbdev_read, /* read */ NULL, /* write */ + NULL, /* poll */ cxd56_usbdev_dup, /* dup */ NULL, /* opendir */ diff --git a/arch/arm/src/lc823450/lc823450_procfs_dvfs.c b/arch/arm/src/lc823450/lc823450_procfs_dvfs.c index 42ee94fe67..d25a1c2bcb 100644 --- a/arch/arm/src/lc823450/lc823450_procfs_dvfs.c +++ b/arch/arm/src/lc823450/lc823450_procfs_dvfs.c @@ -91,6 +91,7 @@ static const struct procfs_operations dvfs_procfsoperations = dvfs_close, /* close */ dvfs_read, /* read */ dvfs_write, /* write */ + NULL, /* poll */ dvfs_dup, /* dup */ NULL, /* opendir */ NULL, /* closedir */ diff --git a/arch/arm64/src/common/arm64_fpu.c b/arch/arm64/src/common/arm64_fpu.c index 16172b3d36..c8202b57a6 100644 --- a/arch/arm64/src/common/arm64_fpu.c +++ b/arch/arm64/src/common/arm64_fpu.c @@ -102,6 +102,7 @@ const struct procfs_operations arm64_fpu_procfs_operations = arm64_fpu_procfs_close, /* close */ arm64_fpu_procfs_read, /* read */ NULL, /* write */ + NULL, /* poll */ NULL, /* dup */ NULL, /* opendir */ NULL, /* closedir */ diff --git a/boards/arm/s32k1xx/rddrone-bms772/src/s32k1xx_nrstcheck_procfs.c b/boards/arm/s32k1xx/rddrone-bms772/src/s32k1xx_nrstcheck_procfs.c index 81f3b4783d..6c97f027c2 100644 --- a/boards/arm/s32k1xx/rddrone-bms772/src/s32k1xx_nrstcheck_procfs.c +++ b/boards/arm/s32k1xx/rddrone-bms772/src/s32k1xx_nrstcheck_procfs.c @@ -94,6 +94,7 @@ const struct procfs_operations s32k1xx_nrstcheck_procfs_ops = s32k1xx_nrstcheck_procfs_close, /* close */ s32k1xx_nrstcheck_procfs_read, /* read */ NULL, /* write */ + NULL, /* poll */ s32k1xx_nrstcheck_procfs_dup, /* dup */ NULL, /* opendir */ NULL, /* closedir */ diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index a745852176..6218f5a7ea 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -114,6 +114,7 @@ const struct procfs_operations g_clk_operations = clk_procfs_close, /* close */ clk_procfs_read, /* read */ NULL, /* write */ + NULL, /* poll */ clk_procfs_dup, /* dup */ diff --git a/drivers/mmcsd/mmcsd_procfs.c b/drivers/mmcsd/mmcsd_procfs.c index 5260d49d42..82256a727d 100644 --- a/drivers/mmcsd/mmcsd_procfs.c +++ b/drivers/mmcsd/mmcsd_procfs.c @@ -112,6 +112,7 @@ static const struct procfs_operations g_mmcsd_operations = mmcsd_close, /* close */ mmcsd_read, /* read */ NULL, /* write */ + NULL, /* poll */ mmcsd_dup, /* dup */ diff --git a/drivers/mtd/mtd_partition.c b/drivers/mtd/mtd_partition.c index e0fc2f9076..8d04be670a 100644 --- a/drivers/mtd/mtd_partition.c +++ b/drivers/mtd/mtd_partition.c @@ -155,6 +155,7 @@ const struct procfs_operations g_part_operations = part_procfs_close, /* close */ part_procfs_read, /* read */ NULL, /* write */ + NULL, /* poll */ part_procfs_dup, /* dup */ diff --git a/drivers/power/pm/pm_procfs.c b/drivers/power/pm/pm_procfs.c index eba85b3b91..61760fb62c 100644 --- a/drivers/power/pm/pm_procfs.c +++ b/drivers/power/pm/pm_procfs.c @@ -131,6 +131,7 @@ const struct procfs_operations g_pm_operations = pm_close, /* close */ pm_read, /* read */ NULL, /* write */ + NULL, /* poll */ pm_dup, /* dup */ diff --git a/fs/binfs/fs_binfs.c b/fs/binfs/fs_binfs.c index 8ec7226b51..4ea17cd4cc 100644 --- a/fs/binfs/fs_binfs.c +++ b/fs/binfs/fs_binfs.c @@ -110,6 +110,7 @@ const struct mountpt_operations g_binfs_operations = binfs_ioctl, /* ioctl */ NULL, /* mmap */ NULL, /* truncate */ + NULL, /* poll */ NULL, /* sync */ binfs_dup, /* dup */ diff --git a/fs/cromfs/fs_cromfs.c b/fs/cromfs/fs_cromfs.c index fff9199dfa..bf83256904 100644 --- a/fs/cromfs/fs_cromfs.c +++ b/fs/cromfs/fs_cromfs.c @@ -186,6 +186,7 @@ const struct mountpt_operations g_cromfs_operations = cromfs_ioctl, /* ioctl */ NULL, /* mmap */ NULL, /* truncate */ + NULL, /* poll */ NULL, /* sync */ cromfs_dup, /* dup */ diff --git a/fs/fat/fs_fat32.c b/fs/fat/fs_fat32.c index 1edb7167ed..0f4bbe8940 100644 --- a/fs/fat/fs_fat32.c +++ b/fs/fat/fs_fat32.c @@ -127,6 +127,7 @@ const struct mountpt_operations g_fat_operations = fat_ioctl, /* ioctl */ NULL, /* mmap */ fat_truncate, /* truncate */ + NULL, /* poll */ fat_sync, /* sync */ fat_dup, /* dup */ fat_fstat, /* fstat */ diff --git a/fs/hostfs/hostfs.c b/fs/hostfs/hostfs.c index e157e37958..d6bbd12b90 100644 --- a/fs/hostfs/hostfs.c +++ b/fs/hostfs/hostfs.c @@ -144,6 +144,7 @@ const struct mountpt_operations g_hostfs_operations = hostfs_ioctl, /* ioctl */ NULL, /* mmap */ hostfs_ftruncate, /* ftruncate */ + NULL, /* poll */ hostfs_sync, /* sync */ hostfs_dup, /* dup */ diff --git a/fs/littlefs/lfs_vfs.c b/fs/littlefs/lfs_vfs.c index 332d3da59c..bc6c2cf7ad 100644 --- a/fs/littlefs/lfs_vfs.c +++ b/fs/littlefs/lfs_vfs.c @@ -150,6 +150,7 @@ const struct mountpt_operations g_littlefs_operations = littlefs_ioctl, /* ioctl */ NULL, /* mmap */ littlefs_truncate, /* truncate */ + NULL, /* poll */ littlefs_sync, /* sync */ littlefs_dup, /* dup */ diff --git a/fs/mount/fs_procfs_mount.c b/fs/mount/fs_procfs_mount.c index a71ae7c579..36ace5ecc6 100644 --- a/fs/mount/fs_procfs_mount.c +++ b/fs/mount/fs_procfs_mount.c @@ -143,7 +143,7 @@ const struct procfs_operations g_mount_operations = mount_close, /* close */ mount_read, /* read */ NULL, /* write */ - + NULL, /* poll */ mount_dup, /* dup */ NULL, /* opendir */ diff --git a/fs/nfs/nfs_vfsops.c b/fs/nfs/nfs_vfsops.c index 49b5414bc8..e265bf8685 100644 --- a/fs/nfs/nfs_vfsops.c +++ b/fs/nfs/nfs_vfsops.c @@ -202,6 +202,7 @@ const struct mountpt_operations g_nfs_operations = NULL, /* ioctl */ NULL, /* mmap */ nfs_truncate, /* truncate */ + NULL, /* poll */ nfs_sync, /* sync */ nfs_dup, /* dup */ diff --git a/fs/nxffs/nxffs_initialize.c b/fs/nxffs/nxffs_initialize.c index 51312da17f..b68569e1f2 100644 --- a/fs/nxffs/nxffs_initialize.c +++ b/fs/nxffs/nxffs_initialize.c @@ -60,6 +60,7 @@ const struct mountpt_operations g_nxffs_operations = #else NULL, /* truncate */ #endif + NULL, /* poll */ NULL, /* sync -- No buffered data */ nxffs_dup, /* dup */ diff --git a/fs/procfs/fs_procfs.c b/fs/procfs/fs_procfs.c index 340b04edc0..f606aa4ae1 100644 --- a/fs/procfs/fs_procfs.c +++ b/fs/procfs/fs_procfs.c @@ -218,6 +218,8 @@ static ssize_t procfs_read(FAR struct file *filep, FAR char *buffer, size_t buflen); static ssize_t procfs_write(FAR struct file *filep, FAR const char *buffer, size_t buflen); +static int procfs_poll(FAR struct file *filep, FAR struct pollfd *fds, + bool setup); static int procfs_ioctl(FAR struct file *filep, int cmd, unsigned long arg); @@ -270,6 +272,7 @@ const struct mountpt_operations g_procfs_operations = procfs_ioctl, /* ioctl */ NULL, /* mmap */ NULL, /* truncate */ + procfs_poll, /* poll */ NULL, /* sync */ procfs_dup, /* dup */ @@ -501,6 +504,28 @@ static ssize_t procfs_write(FAR struct file *filep, FAR const char *buffer, return 0; } +static int procfs_poll(FAR struct file *filep, FAR struct pollfd *fds, + bool setup) +{ + FAR struct procfs_file_s *handler; + + finfo("fds=%p setup=%d\n", fds, setup); + + /* Recover our private data from the struct file instance */ + + handler = (FAR struct procfs_file_s *)filep->f_priv; + DEBUGASSERT(handler); + + /* Call the handler's poll routine */ + + if (handler->procfsentry->ops->poll) + { + return handler->procfsentry->ops->poll(filep, fds, setup); + } + + return -ENOSYS; +} + /**************************************************************************** * Name: procfs_ioctl ****************************************************************************/ diff --git a/fs/procfs/fs_procfscpuinfo.c b/fs/procfs/fs_procfscpuinfo.c index c818dd6284..43d3c81e2e 100644 --- a/fs/procfs/fs_procfscpuinfo.c +++ b/fs/procfs/fs_procfscpuinfo.c @@ -79,6 +79,7 @@ const struct procfs_operations g_cpuinfo_operations = cpuinfo_close, /* close */ cpuinfo_read, /* read */ NULL, /* write */ + NULL, /* poll */ cpuinfo_dup, /* dup */ NULL, /* opendir */ NULL, /* closedir */ diff --git a/fs/procfs/fs_procfscpuload.c b/fs/procfs/fs_procfscpuload.c index 4bd75ee84e..6c55e3e0bd 100644 --- a/fs/procfs/fs_procfscpuload.c +++ b/fs/procfs/fs_procfscpuload.c @@ -101,6 +101,7 @@ const struct procfs_operations g_cpuload_operations = cpuload_close, /* close */ cpuload_read, /* read */ NULL, /* write */ + NULL, /* poll */ cpuload_dup, /* dup */ diff --git a/fs/procfs/fs_procfscritmon.c b/fs/procfs/fs_procfscritmon.c index b904fe77ee..5187dc91ed 100644 --- a/fs/procfs/fs_procfscritmon.c +++ b/fs/procfs/fs_procfscritmon.c @@ -99,6 +99,7 @@ const struct procfs_operations g_critmon_operations = critmon_close, /* close */ critmon_read, /* read */ NULL, /* write */ + NULL, /* poll */ critmon_dup, /* dup */ diff --git a/fs/procfs/fs_procfsfdt.c b/fs/procfs/fs_procfsfdt.c index abe12dc292..7583adb407 100644 --- a/fs/procfs/fs_procfsfdt.c +++ b/fs/procfs/fs_procfsfdt.c @@ -85,6 +85,7 @@ const struct procfs_operations g_fdt_operations = fdt_close, /* close */ fdt_read, /* read */ NULL, /* write */ + NULL, /* poll */ fdt_dup, /* dup */ NULL, /* opendir */ NULL, /* closedir */ diff --git a/fs/procfs/fs_procfsiobinfo.c b/fs/procfs/fs_procfsiobinfo.c index 04b6fbe7d9..859a94b667 100644 --- a/fs/procfs/fs_procfsiobinfo.c +++ b/fs/procfs/fs_procfsiobinfo.c @@ -98,6 +98,7 @@ const struct procfs_operations g_iobinfo_operations = iobinfo_close, /* close */ iobinfo_read, /* read */ NULL, /* write */ + NULL, /* poll */ iobinfo_dup, /* dup */ NULL, /* opendir */ NULL, /* closedir */ diff --git a/fs/procfs/fs_procfsmeminfo.c b/fs/procfs/fs_procfsmeminfo.c index aac6a8ab08..852e4a60b2 100644 --- a/fs/procfs/fs_procfsmeminfo.c +++ b/fs/procfs/fs_procfsmeminfo.c @@ -123,6 +123,7 @@ const struct procfs_operations g_meminfo_operations = meminfo_close, /* close */ meminfo_read, /* read */ NULL, /* write */ + NULL, /* poll */ meminfo_dup, /* dup */ NULL, /* opendir */ NULL, /* closedir */ @@ -138,6 +139,7 @@ const struct procfs_operations g_memdump_operations = meminfo_close, /* close */ memdump_read, /* read */ memdump_write, /* write */ + NULL, /* poll */ meminfo_dup, /* dup */ NULL, /* opendir */ NULL, /* closedir */ diff --git a/fs/procfs/fs_procfsproc.c b/fs/procfs/fs_procfsproc.c index 0995985855..c6b7145c0f 100644 --- a/fs/procfs/fs_procfsproc.c +++ b/fs/procfs/fs_procfsproc.c @@ -250,6 +250,7 @@ const struct procfs_operations g_proc_operations = proc_close, /* close */ proc_read, /* read */ proc_write, /* write */ + NULL, /* poll */ proc_dup, /* dup */ diff --git a/fs/procfs/fs_procfstcbinfo.c b/fs/procfs/fs_procfstcbinfo.c index bdb6c3b955..4a96bea969 100644 --- a/fs/procfs/fs_procfstcbinfo.c +++ b/fs/procfs/fs_procfstcbinfo.c @@ -98,6 +98,7 @@ const struct procfs_operations g_tcbinfo_operations = tcbinfo_close, /* close */ tcbinfo_read, /* read */ NULL, /* write */ + NULL, /* poll */ tcbinfo_dup, /* dup */ diff --git a/fs/procfs/fs_procfsuptime.c b/fs/procfs/fs_procfsuptime.c index 4d4d49f546..eaa67c9e1a 100644 --- a/fs/procfs/fs_procfsuptime.c +++ b/fs/procfs/fs_procfsuptime.c @@ -101,6 +101,7 @@ const struct procfs_operations g_uptime_operations = uptime_close, /* close */ uptime_read, /* read */ NULL, /* write */ + NULL, /* poll */ uptime_dup, /* dup */ diff --git a/fs/procfs/fs_procfsversion.c b/fs/procfs/fs_procfsversion.c index 5832da50ed..dabd0be5f6 100644 --- a/fs/procfs/fs_procfsversion.c +++ b/fs/procfs/fs_procfsversion.c @@ -101,6 +101,7 @@ const struct procfs_operations g_version_operations = version_close, /* close */ version_read, /* read */ NULL, /* write */ + NULL, /* poll */ version_dup, /* dup */ diff --git a/fs/procfs/fs_skeleton.c b/fs/procfs/fs_skeleton.c index 190481d501..3ace7ee005 100644 --- a/fs/procfs/fs_skeleton.c +++ b/fs/procfs/fs_skeleton.c @@ -133,6 +133,7 @@ const struct procfs_operations skel_procfsoperations = #else skel_write, /* write */ #endif + NULL, /* poll */ skel_dup, /* dup */ diff --git a/fs/romfs/fs_romfs.c b/fs/romfs/fs_romfs.c index 48d60a0e3b..e5af8c988b 100644 --- a/fs/romfs/fs_romfs.c +++ b/fs/romfs/fs_romfs.c @@ -123,6 +123,7 @@ const struct mountpt_operations g_romfs_operations = romfs_ioctl, /* ioctl */ romfs_mmap, /* mmap */ NULL, /* truncate */ + NULL, /* poll */ NULL, /* sync */ romfs_dup, /* dup */ diff --git a/fs/rpmsgfs/rpmsgfs.c b/fs/rpmsgfs/rpmsgfs.c index 4881a07898..ac8a6d5214 100644 --- a/fs/rpmsgfs/rpmsgfs.c +++ b/fs/rpmsgfs/rpmsgfs.c @@ -163,6 +163,7 @@ const struct mountpt_operations g_rpmsgfs_operations = rpmsgfs_ioctl, /* ioctl */ NULL, /* mmap */ rpmsgfs_truncate, /* truncate */ + NULL, /* poll */ rpmsgfs_sync, /* sync */ rpmsgfs_dup, /* dup */ diff --git a/fs/smartfs/smartfs_procfs.c b/fs/smartfs/smartfs_procfs.c index 156c2637b9..7e4e64afe7 100644 --- a/fs/smartfs/smartfs_procfs.c +++ b/fs/smartfs/smartfs_procfs.c @@ -177,6 +177,7 @@ const struct procfs_operations g_smartfs_operations = /* No write supported */ smartfs_write, /* write */ + NULL, /* poll */ smartfs_dup, /* dup */ diff --git a/fs/smartfs/smartfs_smart.c b/fs/smartfs/smartfs_smart.c index c55b6a7a89..c0e92c7b66 100644 --- a/fs/smartfs/smartfs_smart.c +++ b/fs/smartfs/smartfs_smart.c @@ -142,6 +142,7 @@ const struct mountpt_operations g_smartfs_operations = smartfs_ioctl, /* ioctl */ NULL, /* mmap */ smartfs_truncate, /* truncate */ + NULL, /* poll */ smartfs_sync, /* sync */ smartfs_dup, /* dup */ diff --git a/fs/spiffs/src/spiffs_vfs.c b/fs/spiffs/src/spiffs_vfs.c index 449a038a72..f8e6967a45 100644 --- a/fs/spiffs/src/spiffs_vfs.c +++ b/fs/spiffs/src/spiffs_vfs.c @@ -143,6 +143,7 @@ const struct mountpt_operations g_spiffs_operations = spiffs_ioctl, /* ioctl */ NULL, /* mmap */ spiffs_truncate, /* truncate */ + NULL, /* poll */ spiffs_sync, /* sync */ spiffs_dup, /* dup */ diff --git a/fs/tmpfs/fs_tmpfs.c b/fs/tmpfs/fs_tmpfs.c index f465cd529d..46a5bf1001 100644 --- a/fs/tmpfs/fs_tmpfs.c +++ b/fs/tmpfs/fs_tmpfs.c @@ -181,6 +181,7 @@ const struct mountpt_operations g_tmpfs_operations = NULL, /* ioctl */ tmpfs_mmap, /* mmap */ tmpfs_truncate, /* truncate */ + NULL, /* poll */ tmpfs_sync, /* sync */ tmpfs_dup, /* dup */ diff --git a/fs/unionfs/fs_unionfs.c b/fs/unionfs/fs_unionfs.c index 2a998526c0..e89a261d6a 100644 --- a/fs/unionfs/fs_unionfs.c +++ b/fs/unionfs/fs_unionfs.c @@ -215,6 +215,7 @@ const struct mountpt_operations g_unionfs_operations = unionfs_ioctl, /* ioctl */ NULL, /* mmap */ unionfs_truncate, /* truncate */ + NULL, /* pool */ unionfs_sync, /* sync */ unionfs_dup, /* dup */ diff --git a/fs/userfs/fs_userfs.c b/fs/userfs/fs_userfs.c index 5302e3147a..89e844637a 100644 --- a/fs/userfs/fs_userfs.c +++ b/fs/userfs/fs_userfs.c @@ -162,6 +162,7 @@ const struct mountpt_operations g_userfs_operations = userfs_ioctl, /* ioctl */ NULL, /* mmap */ userfs_truncate, /* truncate */ + NULL, /* poll */ userfs_sync, /* sync */ userfs_dup, /* dup */ diff --git a/fs/vfs/fs_poll.c b/fs/vfs/fs_poll.c index b3f23fecc3..7c23197c47 100644 --- a/fs/vfs/fs_poll.c +++ b/fs/vfs/fs_poll.c @@ -313,16 +313,23 @@ int file_poll(FAR struct file *filep, FAR struct pollfd *fds, bool setup) { /* Yes, it does... Setup the poll */ - ret = (int)inode->u.i_ops->poll(filep, fds, setup); + ret = inode->u.i_ops->poll(filep, fds, setup); } +#ifndef CONFIG_DISABLE_MOUNTPOINT + else if (INODE_IS_MOUNTPT(inode) && inode->u.i_mops != NULL && + inode->u.i_mops->poll != NULL) + { + ret = inode->u.i_mops->poll(filep, fds, setup); + } +#endif /* Regular files (and block devices) are always readable and * writable. Open Group: "Regular files shall always poll TRUE for * reading and writing." */ - if (INODE_IS_MOUNTPT(inode) || INODE_IS_BLOCK(inode) || - INODE_IS_MTD(inode)) + else if (INODE_IS_MOUNTPT(inode) || INODE_IS_BLOCK(inode) || + INODE_IS_MTD(inode)) { if (setup) { diff --git a/fs/zipfs/zip_vfs.c b/fs/zipfs/zip_vfs.c index 296962878d..5e385a26cc 100644 --- a/fs/zipfs/zip_vfs.c +++ b/fs/zipfs/zip_vfs.c @@ -134,6 +134,7 @@ const struct mountpt_operations g_zipfs_operations = NULL, /* ioctl */ NULL, /* mmap */ NULL, /* truncate */ + NULL, /* poll */ NULL, /* sync */ zipfs_dup, /* dup */ diff --git a/include/nuttx/fs/fs.h b/include/nuttx/fs/fs.h index 032f1c6147..f17a04f5eb 100644 --- a/include/nuttx/fs/fs.h +++ b/include/nuttx/fs/fs.h @@ -319,7 +319,8 @@ struct mountpt_operations CODE int (*mmap)(FAR struct file *filep, FAR struct mm_map_entry_s *map); CODE int (*truncate)(FAR struct file *filep, off_t length); - + CODE int (*poll)(FAR struct file *filep, FAR struct pollfd *fds, + bool setup); /* The two structures need not be common after this point. The following * are extended methods needed to deal with the unique needs of mounted * file systems. diff --git a/include/nuttx/fs/procfs.h b/include/nuttx/fs/procfs.h index f14dceeca9..902d612587 100644 --- a/include/nuttx/fs/procfs.h +++ b/include/nuttx/fs/procfs.h @@ -59,6 +59,8 @@ struct procfs_operations ssize_t (*write)(FAR struct file *filep, FAR const char *buffer, size_t buflen); + int (*poll)(FAR struct file *filep, FAR struct pollfd *fds, + bool setup); /* The two structures need not be common after this point. The following * are extended methods needed to deal with the unique needs of mounted diff --git a/mm/mempool/mempool_procfs.c b/mm/mempool/mempool_procfs.c index 0cb99742ed..5e86b90c23 100644 --- a/mm/mempool/mempool_procfs.c +++ b/mm/mempool/mempool_procfs.c @@ -78,6 +78,7 @@ const struct procfs_operations g_mempool_operations = mempool_close, /* close */ mempool_read, /* read */ NULL, /* write */ + NULL, /* poll */ mempool_dup, /* dup */ NULL, /* opendir */ NULL, /* closedir */ diff --git a/net/procfs/net_procfs.c b/net/procfs/net_procfs.c index 65ec11f097..80960ca213 100644 --- a/net/procfs/net_procfs.c +++ b/net/procfs/net_procfs.c @@ -168,6 +168,7 @@ const struct procfs_operations g_net_operations = netprocfs_close, /* close */ netprocfs_read, /* read */ NULL, /* write */ + NULL, /* poll */ netprocfs_dup, /* dup */ netprocfs_opendir, /* opendir */ diff --git a/net/procfs/net_procfs_route.c b/net/procfs/net_procfs_route.c index f3384276f5..19c4c794a8 100644 --- a/net/procfs/net_procfs_route.c +++ b/net/procfs/net_procfs_route.c @@ -181,6 +181,7 @@ const struct procfs_operations g_netroute_operations = route_close, /* close */ route_read, /* read */ NULL, /* write */ + NULL, /* poll */ route_dup, /* dup */ diff --git a/sched/irq/irq_procfs.c b/sched/irq/irq_procfs.c index 7f5618579a..bc878fa9f2 100644 --- a/sched/irq/irq_procfs.c +++ b/sched/irq/irq_procfs.c @@ -119,6 +119,7 @@ const struct procfs_operations g_irq_operations = irq_close, /* close */ irq_read, /* read */ NULL, /* write */ + NULL, /* poll */ irq_dup, /* dup */ diff --git a/sched/module/mod_procfs.c b/sched/module/mod_procfs.c index 2a89e6302f..1176e6e939 100644 --- a/sched/module/mod_procfs.c +++ b/sched/module/mod_procfs.c @@ -106,6 +106,7 @@ const struct procfs_operations g_module_operations = modprocfs_close, /* close */ modprocfs_read, /* read */ NULL, /* write */ + NULL, /* poll */ modprocfs_dup, /* dup */ NULL, /* opendir */