The flag of GFP_ATOMIC is given to the call of kmalloc when building node tree, but the call is not atomic context. The call of fw_core_handle_bus_reset() and fw_core_remove_card() builds the tree, while they are done in specific workqueue or pci remove callback. This commit obsolete the usage of GFP_ATOMIC.
Unified · Split
| @@ -1211,7 +1211,7 @@ void fw_node_event(struct fw_card *card, struct fw_node *node, int event) · 1210 unmodified lines | |||
| 1211 | * without actually having a link. | 1211 | * without actually having a link. |
| 1212 | */ | 1212 | */ |
| 1213 | create: | 1213 | create: |
| 1214 | device = kzalloc(sizeof(*device), GFP_ATOMIC); | 1214 | device = kzalloc(sizeof(*device), GFP_KERNEL); |
| 1215 | if (device == NULL) | 1215 | if (device == NULL) |
| 1216 | break; | 1216 | break; |
| 1217 | 1217 | ||
| @@ -101,7 +101,7 @@ static struct fw_node *fw_node_create(u32 sid, int port_count, int color) · 100 unmodified lines | |||
| 101 | { | 101 | { |
| 102 | struct fw_node *node; | 102 | struct fw_node *node; |
| 103 | 103 | ||
| 104 | node = kzalloc(struct_size(node, ports, port_count), GFP_ATOMIC); | 104 | node = kzalloc(struct_size(node, ports, port_count), GFP_KERNEL); |
| 105 | if (node == NULL) | 105 | if (node == NULL) |
| 106 | return NULL; | 106 | return NULL; |
| 107 | 107 | ||