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 ---