projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
block: always allocate genhd->ev if check_events is implemented
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
block
/
genhd.c
diff --git
a/block/genhd.c
b/block/genhd.c
index
b364bd0
..
95822ae
100644
(file)
--- a/
block/genhd.c
+++ b/
block/genhd.c
@@
-1588,9
+1588,13
@@
static void disk_events_workfn(struct work_struct *work)
spin_unlock_irq(&ev->lock);
spin_unlock_irq(&ev->lock);
- /* tell userland about new events */
+ /*
+ * Tell userland about new events. Only the events listed in
+ * @disk->events are reported. Unlisted events are processed the
+ * same internally but never get reported to userland.
+ */
for (i = 0; i < ARRAY_SIZE(disk_uevents); i++)
for (i = 0; i < ARRAY_SIZE(disk_uevents); i++)
- if (events & (1 << i))
+ if (events &
disk->events &
(1 << i))
envp[nr_events++] = disk_uevents[i];
if (nr_events)
envp[nr_events++] = disk_uevents[i];
if (nr_events)
@@
-1724,7
+1728,7
@@
static void disk_add_events(struct gendisk *disk)
{
struct disk_events *ev;
{
struct disk_events *ev;
- if (!disk->fops->check_events
|| !(disk->events | disk->async_events)
)
+ if (!disk->fops->check_events)
return;
ev = kzalloc(sizeof(*ev), GFP_KERNEL);
return;
ev = kzalloc(sizeof(*ev), GFP_KERNEL);