Hi,

here a piece of code from driver rtl8192e:

        while (true) {
                spin_lock_irqsave(&priv->rf_ps_lock, flag);
                if (priv->rf_change_in_progress) {
                        spin_unlock_irqrestore(&priv->rf_ps_lock, flag);

                        while (priv->rf_change_in_progress) {
                                rf_wait_counter++;
                                mdelay(1);

                                if (rf_wait_counter > 100) {
                                        netdev_warn(dev,
                                                    "%s(): Timeout waiting for RF 
change.\n",
                                                    __func__);
                                        return false;
                                }
                        }
                } else {
                        priv->rf_change_in_progress = true;
                        spin_unlock_irqrestore(&priv->rf_ps_lock, flag);
                        break;
                }
        }

For me something is wrong here. First the access of priv->rf_change_in_progress is protected by a spin lock and then in the while loop it is unprotected. Is this correct? For me it is required to protected it always or protected it never.

Thanks for your support.

Bye Philipp

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to