diff options
Diffstat (limited to 'drivers/parisc/iosapic.c')
| -rw-r--r-- | drivers/parisc/iosapic.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c index 19657efa8dc3..8d7a36392eb8 100644 --- a/drivers/parisc/iosapic.c +++ b/drivers/parisc/iosapic.c | |||
| @@ -873,28 +873,24 @@ void *iosapic_register(unsigned long hpa) | |||
| 873 | return NULL; | 873 | return NULL; |
| 874 | } | 874 | } |
| 875 | 875 | ||
| 876 | isi = (struct iosapic_info *)kmalloc(sizeof(struct iosapic_info), GFP_KERNEL); | 876 | isi = (struct iosapic_info *)kzalloc(sizeof(struct iosapic_info), GFP_KERNEL); |
| 877 | if (!isi) { | 877 | if (!isi) { |
| 878 | BUG(); | 878 | BUG(); |
| 879 | return NULL; | 879 | return NULL; |
| 880 | } | 880 | } |
| 881 | 881 | ||
| 882 | memset(isi, 0, sizeof(struct iosapic_info)); | ||
| 883 | |||
| 884 | isi->addr = ioremap(hpa, 4096); | 882 | isi->addr = ioremap(hpa, 4096); |
| 885 | isi->isi_hpa = hpa; | 883 | isi->isi_hpa = hpa; |
| 886 | isi->isi_version = iosapic_rd_version(isi); | 884 | isi->isi_version = iosapic_rd_version(isi); |
| 887 | isi->isi_num_vectors = IOSAPIC_IRDT_MAX_ENTRY(isi->isi_version) + 1; | 885 | isi->isi_num_vectors = IOSAPIC_IRDT_MAX_ENTRY(isi->isi_version) + 1; |
| 888 | 886 | ||
| 889 | vip = isi->isi_vector = (struct vector_info *) | 887 | vip = isi->isi_vector = (struct vector_info *) |
| 890 | kmalloc(sizeof(struct vector_info) * isi->isi_num_vectors, GFP_KERNEL); | 888 | kzalloc(sizeof(struct vector_info) * isi->isi_num_vectors, GFP_KERNEL); |
| 891 | if (vip == NULL) { | 889 | if (vip == NULL) { |
| 892 | kfree(isi); | 890 | kfree(isi); |
| 893 | return NULL; | 891 | return NULL; |
| 894 | } | 892 | } |
| 895 | 893 | ||
| 896 | memset(vip, 0, sizeof(struct vector_info) * isi->isi_num_vectors); | ||
| 897 | |||
| 898 | for (cnt=0; cnt < isi->isi_num_vectors; cnt++, vip++) { | 894 | for (cnt=0; cnt < isi->isi_num_vectors; cnt++, vip++) { |
| 899 | vip->irqline = (unsigned char) cnt; | 895 | vip->irqline = (unsigned char) cnt; |
| 900 | vip->iosapic = isi; | 896 | vip->iosapic = isi; |
