diff options
author | Toshi Kani <toshi.kani@hpe.com> | 2016-01-26 15:57:25 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-01-30 03:49:58 -0500 |
commit | 9a975bee4b3945b271bcff18a520d4863c210f8b (patch) | |
tree | 959343e154bda576c7bcb061b50e9c3208811261 | |
parent | 782b86641e5d471e9eb1cf0072c012d2f758e568 (diff) |
drivers: Initialize resource entry to zero
I/O resource descriptor, 'desc' in struct resource, needs to be
initialized to zero by default. Some drivers call kmalloc() to
allocate a resource entry, but do not initialize it to zero by
memset(). Change these drivers to call kzalloc(), instead.
Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Alexandre Bounine <alexandre.bounine@idt.com>
Acked-by: Helge Deller <deller@gmx.de>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Luis R. Rodriguez <mcgrof@suse.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Toshi Kani <toshi.kani@hp.com>
Cc: linux-acpi@vger.kernel.org
Cc: linux-arch@vger.kernel.org
Cc: linux-mm <linux-mm@kvack.org>
Cc: linux-parisc@vger.kernel.org
Cc: linux-renesas-soc@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Link: http://lkml.kernel.org/r/1453841853-11383-10-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r-- | drivers/acpi/acpi_platform.c | 2 | ||||
-rw-r--r-- | drivers/parisc/eisa_enumerator.c | 4 | ||||
-rw-r--r-- | drivers/rapidio/rio.c | 8 | ||||
-rw-r--r-- | drivers/sh/superhyway/superhyway.c | 2 |
4 files changed, 8 insertions, 8 deletions
diff --git a/drivers/acpi/acpi_platform.c b/drivers/acpi/acpi_platform.c index 296b7a14893a..b6f7fa3a1d40 100644 --- a/drivers/acpi/acpi_platform.c +++ b/drivers/acpi/acpi_platform.c | |||
@@ -62,7 +62,7 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev) | |||
62 | if (count < 0) { | 62 | if (count < 0) { |
63 | return NULL; | 63 | return NULL; |
64 | } else if (count > 0) { | 64 | } else if (count > 0) { |
65 | resources = kmalloc(count * sizeof(struct resource), | 65 | resources = kzalloc(count * sizeof(struct resource), |
66 | GFP_KERNEL); | 66 | GFP_KERNEL); |
67 | if (!resources) { | 67 | if (!resources) { |
68 | dev_err(&adev->dev, "No memory for resources\n"); | 68 | dev_err(&adev->dev, "No memory for resources\n"); |
diff --git a/drivers/parisc/eisa_enumerator.c b/drivers/parisc/eisa_enumerator.c index a656d9e83343..21905fef2cbf 100644 --- a/drivers/parisc/eisa_enumerator.c +++ b/drivers/parisc/eisa_enumerator.c | |||
@@ -91,7 +91,7 @@ static int configure_memory(const unsigned char *buf, | |||
91 | for (i=0;i<HPEE_MEMORY_MAX_ENT;i++) { | 91 | for (i=0;i<HPEE_MEMORY_MAX_ENT;i++) { |
92 | c = get_8(buf+len); | 92 | c = get_8(buf+len); |
93 | 93 | ||
94 | if (NULL != (res = kmalloc(sizeof(struct resource), GFP_KERNEL))) { | 94 | if (NULL != (res = kzalloc(sizeof(struct resource), GFP_KERNEL))) { |
95 | int result; | 95 | int result; |
96 | 96 | ||
97 | res->name = name; | 97 | res->name = name; |
@@ -183,7 +183,7 @@ static int configure_port(const unsigned char *buf, struct resource *io_parent, | |||
183 | for (i=0;i<HPEE_PORT_MAX_ENT;i++) { | 183 | for (i=0;i<HPEE_PORT_MAX_ENT;i++) { |
184 | c = get_8(buf+len); | 184 | c = get_8(buf+len); |
185 | 185 | ||
186 | if (NULL != (res = kmalloc(sizeof(struct resource), GFP_KERNEL))) { | 186 | if (NULL != (res = kzalloc(sizeof(struct resource), GFP_KERNEL))) { |
187 | res->name = board; | 187 | res->name = board; |
188 | res->start = get_16(buf+len+1); | 188 | res->start = get_16(buf+len+1); |
189 | res->end = get_16(buf+len+1)+(c&HPEE_PORT_SIZE_MASK)+1; | 189 | res->end = get_16(buf+len+1)+(c&HPEE_PORT_SIZE_MASK)+1; |
diff --git a/drivers/rapidio/rio.c b/drivers/rapidio/rio.c index d7b87c64b7cd..e220edc85c68 100644 --- a/drivers/rapidio/rio.c +++ b/drivers/rapidio/rio.c | |||
@@ -117,7 +117,7 @@ int rio_request_inb_mbox(struct rio_mport *mport, | |||
117 | if (mport->ops->open_inb_mbox == NULL) | 117 | if (mport->ops->open_inb_mbox == NULL) |
118 | goto out; | 118 | goto out; |
119 | 119 | ||
120 | res = kmalloc(sizeof(struct resource), GFP_KERNEL); | 120 | res = kzalloc(sizeof(struct resource), GFP_KERNEL); |
121 | 121 | ||
122 | if (res) { | 122 | if (res) { |
123 | rio_init_mbox_res(res, mbox, mbox); | 123 | rio_init_mbox_res(res, mbox, mbox); |
@@ -185,7 +185,7 @@ int rio_request_outb_mbox(struct rio_mport *mport, | |||
185 | if (mport->ops->open_outb_mbox == NULL) | 185 | if (mport->ops->open_outb_mbox == NULL) |
186 | goto out; | 186 | goto out; |
187 | 187 | ||
188 | res = kmalloc(sizeof(struct resource), GFP_KERNEL); | 188 | res = kzalloc(sizeof(struct resource), GFP_KERNEL); |
189 | 189 | ||
190 | if (res) { | 190 | if (res) { |
191 | rio_init_mbox_res(res, mbox, mbox); | 191 | rio_init_mbox_res(res, mbox, mbox); |
@@ -285,7 +285,7 @@ int rio_request_inb_dbell(struct rio_mport *mport, | |||
285 | { | 285 | { |
286 | int rc = 0; | 286 | int rc = 0; |
287 | 287 | ||
288 | struct resource *res = kmalloc(sizeof(struct resource), GFP_KERNEL); | 288 | struct resource *res = kzalloc(sizeof(struct resource), GFP_KERNEL); |
289 | 289 | ||
290 | if (res) { | 290 | if (res) { |
291 | rio_init_dbell_res(res, start, end); | 291 | rio_init_dbell_res(res, start, end); |
@@ -360,7 +360,7 @@ int rio_release_inb_dbell(struct rio_mport *mport, u16 start, u16 end) | |||
360 | struct resource *rio_request_outb_dbell(struct rio_dev *rdev, u16 start, | 360 | struct resource *rio_request_outb_dbell(struct rio_dev *rdev, u16 start, |
361 | u16 end) | 361 | u16 end) |
362 | { | 362 | { |
363 | struct resource *res = kmalloc(sizeof(struct resource), GFP_KERNEL); | 363 | struct resource *res = kzalloc(sizeof(struct resource), GFP_KERNEL); |
364 | 364 | ||
365 | if (res) { | 365 | if (res) { |
366 | rio_init_dbell_res(res, start, end); | 366 | rio_init_dbell_res(res, start, end); |
diff --git a/drivers/sh/superhyway/superhyway.c b/drivers/sh/superhyway/superhyway.c index 2d9e7f3d5611..bb1fb7712134 100644 --- a/drivers/sh/superhyway/superhyway.c +++ b/drivers/sh/superhyway/superhyway.c | |||
@@ -66,7 +66,7 @@ int superhyway_add_device(unsigned long base, struct superhyway_device *sdev, | |||
66 | superhyway_read_vcr(dev, base, &dev->vcr); | 66 | superhyway_read_vcr(dev, base, &dev->vcr); |
67 | 67 | ||
68 | if (!dev->resource) { | 68 | if (!dev->resource) { |
69 | dev->resource = kmalloc(sizeof(struct resource), GFP_KERNEL); | 69 | dev->resource = kzalloc(sizeof(struct resource), GFP_KERNEL); |
70 | if (!dev->resource) { | 70 | if (!dev->resource) { |
71 | kfree(dev); | 71 | kfree(dev); |
72 | return -ENOMEM; | 72 | return -ENOMEM; |