See: commit 7034ca4dda60f213d2d428da690710da6ea9a8df Author: Julia Lawall <julia@diku.dk> Date: Wed Dec 24 16:24:05 2008 +0100 Staging: rt2860,rt2870: Correct use of ! and & On linux kernel for reference, rt3090 needs same fix. diff -p -up 2009_0612_RT3090_Linux_STA_V2.1.0.0_DPO/os/linux/sta_ioctl.c.orig 2009_0612_RT3090_Linux_STA_V2.1.0.0_DPO/os/linux/sta_ioctl.c --- 2009_0612_RT3090_Linux_STA_V2.1.0.0_DPO/os/linux/sta_ioctl.c.orig 2009-08-07 18:28:25.000000000 -0300 +++ 2009_0612_RT3090_Linux_STA_V2.1.0.0_DPO/os/linux/sta_ioctl.c 2009-08-07 18:28:11.000000000 -0300 @@ -1840,7 +1840,7 @@ int rt_ioctl_siwencode(struct net_device } else /* Don't complain if only change the mode */ - if(!erq->flags & IW_ENCODE_MODE) + if(!(erq->flags & IW_ENCODE_MODE)) { return -EINVAL; }