WE: Fix set events not propagated
Jean Tourrilhes [Tue, 24 Nov 2009 18:47:08 +0000 (10:47 -0800)]
I've just noticed that some events are no longer propagated
for some wireless drivers. Basically, SET request with a extra payload
for driver without commit handler. The fix is pretty simple, see
attached.
Actually, a few lines below this line, you will see that the
event generation for simple SET (iwpoint-less ?) is done properly,
and this other event generation does not need fixing.

Signed-off-by: Jean Tourrilhes <jt@hpl.hp.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

net/wireless/wext-core.c

index a4e5ddc..6033785 100644 (file)
@@ -802,7 +802,8 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
        }
 
        /* Generate an event to notify listeners of the change */
-       if ((descr->flags & IW_DESCR_FLAG_EVENT) && err == -EIWCOMMIT) {
+       if ((descr->flags & IW_DESCR_FLAG_EVENT) &&
+           ((err == 0) || (err == -EIWCOMMIT))) {
                union iwreq_data *data = (union iwreq_data *) iwp;
 
                if (descr->flags & IW_DESCR_FLAG_RESTRICT)