diff --git a/src/system/kernel/device_manager/devfs.cpp b/src/system/kernel/device_manager/devfs.cpp index c0139f3fe3..4fc5d3102d 100644 --- a/src/system/kernel/device_manager/devfs.cpp +++ b/src/system/kernel/device_manager/devfs.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include "BaseDevice.h" #include "FileDevice.h" @@ -1552,8 +1553,12 @@ devfs_select(fs_volume* _volume, fs_vnode* _vnode, void* _cookie, return B_NOT_ALLOWED; // If the device has no select() hook, notify select() now. - if (!vnode->stream.u.dev.device->HasSelect()) - return notify_select_event((selectsync*)sync, event); + if (!vnode->stream.u.dev.device->HasSelect()) { + if (!SELECT_TYPE_IS_OUTPUT_ONLY(event)) + return notify_select_event((selectsync*)sync, event); + else + return B_OK; + } return vnode->stream.u.dev.device->Select(cookie->device_cookie, event, (selectsync*)sync);