diff options
Diffstat (limited to 'net/tipc/zone.c')
| -rw-r--r-- | net/tipc/zone.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/net/tipc/zone.c b/net/tipc/zone.c index 2803e1b4f170..f5b00ea2d5ac 100644 --- a/net/tipc/zone.c +++ b/net/tipc/zone.c | |||
| @@ -44,19 +44,23 @@ | |||
| 44 | 44 | ||
| 45 | struct _zone *tipc_zone_create(u32 addr) | 45 | struct _zone *tipc_zone_create(u32 addr) |
| 46 | { | 46 | { |
| 47 | struct _zone *z_ptr = NULL; | 47 | struct _zone *z_ptr; |
| 48 | u32 z_num; | 48 | u32 z_num; |
| 49 | 49 | ||
| 50 | if (!tipc_addr_domain_valid(addr)) | 50 | if (!tipc_addr_domain_valid(addr)) { |
| 51 | err("Zone creation failed, invalid domain 0x%x\n", addr); | ||
| 51 | return NULL; | 52 | return NULL; |
| 53 | } | ||
| 52 | 54 | ||
| 53 | z_ptr = (struct _zone *)kmalloc(sizeof(*z_ptr), GFP_ATOMIC); | 55 | z_ptr = kzalloc(sizeof(*z_ptr), GFP_ATOMIC); |
| 54 | if (z_ptr != NULL) { | 56 | if (!z_ptr) { |
| 55 | memset(z_ptr, 0, sizeof(*z_ptr)); | 57 | warn("Zone creation failed, insufficient memory\n"); |
| 56 | z_num = tipc_zone(addr); | 58 | return NULL; |
| 57 | z_ptr->addr = tipc_addr(z_num, 0, 0); | ||
| 58 | tipc_net.zones[z_num] = z_ptr; | ||
| 59 | } | 59 | } |
| 60 | |||
| 61 | z_num = tipc_zone(addr); | ||
| 62 | z_ptr->addr = tipc_addr(z_num, 0, 0); | ||
| 63 | tipc_net.zones[z_num] = z_ptr; | ||
| 60 | return z_ptr; | 64 | return z_ptr; |
| 61 | } | 65 | } |
| 62 | 66 | ||
