iosapic.c (97f2aab6698f3ab2552c41c1024a65ffd0763a6d) | iosapic.c (cb6fc18e9ca615f03d18e60c49855b434ca2e51e) |
---|---|
1/* 2** I/O Sapic Driver - PCI interrupt line support 3** 4** (c) Copyright 1999 Grant Grundler 5** (c) Copyright 1999 Hewlett-Packard Company 6** 7** This program is free software; you can redistribute it and/or modify 8** it under the terms of the GNU General Public License as published by --- 859 unchanged lines hidden (view full) --- 868 break; 869 } 870 871 if (cnt >= irt_num_entry) { 872 DBG("iosapic_register() ignoring 0x%lx (NOT FOUND)\n", hpa); 873 return NULL; 874 } 875 | 1/* 2** I/O Sapic Driver - PCI interrupt line support 3** 4** (c) Copyright 1999 Grant Grundler 5** (c) Copyright 1999 Hewlett-Packard Company 6** 7** This program is free software; you can redistribute it and/or modify 8** it under the terms of the GNU General Public License as published by --- 859 unchanged lines hidden (view full) --- 868 break; 869 } 870 871 if (cnt >= irt_num_entry) { 872 DBG("iosapic_register() ignoring 0x%lx (NOT FOUND)\n", hpa); 873 return NULL; 874 } 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) { 878 BUG(); 879 return NULL; 880 } 881 | 877 if (!isi) { 878 BUG(); 879 return NULL; 880 } 881 |
882 memset(isi, 0, sizeof(struct iosapic_info)); 883 | |
884 isi->addr = ioremap(hpa, 4096); 885 isi->isi_hpa = hpa; 886 isi->isi_version = iosapic_rd_version(isi); 887 isi->isi_num_vectors = IOSAPIC_IRDT_MAX_ENTRY(isi->isi_version) + 1; 888 889 vip = isi->isi_vector = (struct vector_info *) | 882 isi->addr = ioremap(hpa, 4096); 883 isi->isi_hpa = hpa; 884 isi->isi_version = iosapic_rd_version(isi); 885 isi->isi_num_vectors = IOSAPIC_IRDT_MAX_ENTRY(isi->isi_version) + 1; 886 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) { 892 kfree(isi); 893 return NULL; 894 } 895 | 889 if (vip == NULL) { 890 kfree(isi); 891 return NULL; 892 } 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++) { 899 vip->irqline = (unsigned char) cnt; 900 vip->iosapic = isi; 901 } 902 return isi; 903} 904 905 --- 40 unchanged lines hidden --- | 894 for (cnt=0; cnt < isi->isi_num_vectors; cnt++, vip++) { 895 vip->irqline = (unsigned char) cnt; 896 vip->iosapic = isi; 897 } 898 return isi; 899} 900 901 --- 40 unchanged lines hidden --- |