diff options
Diffstat (limited to 'include/linux/firewire.h')
| -rw-r--r-- | include/linux/firewire.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/include/linux/firewire.h b/include/linux/firewire.h index db04ec5121cb..191501afd7fb 100644 --- a/include/linux/firewire.h +++ b/include/linux/firewire.h | |||
| @@ -265,8 +265,16 @@ typedef void (*fw_transaction_callback_t)(struct fw_card *card, int rcode, | |||
| 265 | void *data, size_t length, | 265 | void *data, size_t length, |
| 266 | void *callback_data); | 266 | void *callback_data); |
| 267 | /* | 267 | /* |
| 268 | * Important note: Except for the FCP registers, the callback must guarantee | 268 | * This callback handles an inbound request subaction. It is called in |
| 269 | * that either fw_send_response() or kfree() is called on the @request. | 269 | * RCU read-side context, therefore must not sleep. |
| 270 | * | ||
| 271 | * The callback should not initiate outbound request subactions directly. | ||
| 272 | * Otherwise there is a danger of recursion of inbound and outbound | ||
| 273 | * transactions from and to the local node. | ||
| 274 | * | ||
| 275 | * The callback is responsible that either fw_send_response() or kfree() | ||
| 276 | * is called on the @request, except for FCP registers for which the core | ||
| 277 | * takes care of that. | ||
| 270 | */ | 278 | */ |
| 271 | typedef void (*fw_address_callback_t)(struct fw_card *card, | 279 | typedef void (*fw_address_callback_t)(struct fw_card *card, |
| 272 | struct fw_request *request, | 280 | struct fw_request *request, |
