Hi,

        I have the following near the top of my cpufreq driver target routine:

while(test_and_set_bit(cf750gxmCfgChangeBit,&cf750gxvStateBits)) {
        /*
         * Someone mucking with our cfg? (I hope it is ok to call
         * schedule() here! - truth is I have no idea what I am doing
         * ... my reasoning is I want to yeild the cpu so whoever is
         * mucking around can finish)
         */
        schedule();
}

This is to prevent bad things from happening if someone is trying to change a parameter for the driver via sysfs while the target routine is running. Fortunately, because I had a bug where this bit was not getting cleared on one of the paths through the target routine ... I now know it is not safe to call schedule (it got stuck in there - knocked out my adb keyboard! - (I think target is called from a timer that the governor sets up ... interrupt context?)).

        How does one very briefly yield the cpu in this context?

kevin
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to