On 10/8/2018 8:14 PM, Johannes Berg wrote:
> On Wed, 2018-09-26 at 15:55 +0530, Ajay Singh wrote:
>> +static struct net_device *wilc_wfi_mon; /* global monitor netdev */
> There might not exist platforms with multiple devices (yet), but it's
> really bad practice to do this anyway.
>
Sure, will work on to avoid the use of this static variable here.
>> +static u8 srcadd[6];
>> +static u8 bssid[6];
>> +
>> +#define IEEE80211_RADIOTAP_F_TX_RTS 0x0004  /* used rts/cts handshake */
>> +#define IEEE80211_RADIOTAP_F_TX_FAIL        0x0001  /* failed due to 
>> excessive*/
> Uh.. we have a radiotap include file and you already use it, why?
>
Right, will remove these macro as header is already included.
>> +void wilc_wfi_deinit_mon_interface(void)
>> +{
>> +    bool rollback_lock = false;
>> +
>> +    if (wilc_wfi_mon) {
>> +            if (rtnl_is_locked()) {
>> +                    rtnl_unlock();
>> +                    rollback_lock = true;
>> +            }
>> +            unregister_netdev(wilc_wfi_mon);
>> +
>> +            if (rollback_lock) {
>> +                    rtnl_lock();
>> +                    rollback_lock = false;
>> +            }
>> +            wilc_wfi_mon = NULL;
>> +    }
>> +}
> Uh, no, you really cannot do conditional locking like this.
>
> But seeing things like this pretty much destroys all of the confidence I
> might have had of the code, so I'd say we cannot merge this until you
> can demonstrate somebody more familiar with Linux has reviewed it, I'm
> just doing a drive-by review for the stack integration aspects (and
> haven't even found where that happens yet).

I will refactor wilc_wfi_deinit_mon_interface() and submit more cleaner
version of this function.
Currently, I am not clear about which stack integration part is missing
. Can you please provide some more details about it.

Regards,
Ajay

Reply via email to