2009-11-24 18:59:34

by Jean Tourrilhes

[permalink] [raw]
Subject: [PATCH] WE: Fix set events not propagated

Hi,

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.
Regards,

Jean

Signed-off-by: Jean Tourrilhes <[email protected]>

diff -u -p linux/net/wireless/wext.j1.c linux/net/wireless/wext.c
--- linux/net/wireless/wext.j1.c 2009-11-23 17:42:24.000000000 -0800
+++ linux/net/wireless/wext.c 2009-11-23 17:44:41.000000000 -0800
@@ -809,7 +809,8 @@ static int ioctl_standard_iw_point(struc
}

/* 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)