Re: [SCSI] fix media change events for polled devices

From: James Bottomley
Date: Fri Mar 21 2008 - 15:44:40 EST


On Fri, 2008-03-21 at 13:12 -0400, Jeff Garzik wrote:
> Linux Kernel Mailing List wrote:
> > [SCSI] fix media change events for polled devices
> >
> > Commit:
> > a341cd0f (SCSI: add asynchronous event notification API)
> > breaks:
> > 285e9670 (sr,sd: send media state change modification events)
> > by introducing an event filter, which is removed here, to make
> > events, we are depending on, happen again.
>
>
> By simply reading the code history, it is trivial to verify that this
> description is false:
>
> Commit 285e9670 depends on a341cd0f, so by definition it is 285e9670 --
> or rather the incomplete update of your original patch that resulted in
> 285e9670 -- that is broken.
>
> Since commit 285e9670 is broken, you fixed the wrong thing.
>
> Furthermore, you broke a userspace interface that was introduced by
> a341cd0f, by removing the event filter controlled by userspace.

> Did anyone bother to read any code at all?

Yes, I did. The userspace interface has never worked as a writeable
attribute because it's read only (as Kay has pointed out several times).
Based on that, I just #if'd out the filter code to get polled media
events working again.

The filter can be put back with a better discriminator for 2.6.26

> When 285e9670 was updated for the scsi_evt_* interface, it should have
> initialized the supported_events mask.

That would break HAL ... it's using the presence of the media_event flag
in the variable to indicate it doesn't need to poll. We need two flags,
one for polling and one for AN.

> And that is the fix -- initialize supported_events according to sr/sd's
> needs, and revert this change (4d1566ed2100d074ccc654e5cf2e44cdea3a01d0)
> as obviously broken.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/