Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

NAME

       pm_send_all - send request to all managed devices

SYNOPSIS

       int pm_send_all  (pm_request_t rqst, void * data);

ARGUMENTS

       rqst   power management request

       data   data for the callback

DESCRIPTION

       Issue  a  power  management  request  to  a all devices. The PM_SUSPEND
       events are handled specially. Any device is permitted to fail a suspend
       by  returning  a  non zero (error) value from its callback function. If
       any device vetoes a suspend request then all other  devices  that  have
       suspended  during  the processing of this request are restored to their
       previous state.

WARNING

       This function takes the pm_devs_lock. The lock is not dropped until the
       callbacks  have  completed.  This  prevents  races  against  pm locking
       functions, races against module unload pm_unregister code. It does mean
       however  that  you  must not issue pm_ functions within the callback or
       you will deadlock and users will hate you.

       Zero is returned on success. If a suspend fails then  the  status  from
       the device that vetoes the suspend is returned.

BUGS

       what  stops  two  power  management  requests occurring in parallel and
       conflicting.