diff options
36 files changed, 170 insertions, 114 deletions
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c index f948419c888a..efe07990e7fc 100644 --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c | |||
@@ -642,9 +642,13 @@ static void map_cpu_to_logical_apicid(void) | |||
642 | { | 642 | { |
643 | int cpu = smp_processor_id(); | 643 | int cpu = smp_processor_id(); |
644 | int apicid = logical_smp_processor_id(); | 644 | int apicid = logical_smp_processor_id(); |
645 | int node = apicid_to_node(apicid); | ||
646 | |||
647 | if (!node_online(node)) | ||
648 | node = first_online_node; | ||
645 | 649 | ||
646 | cpu_2_logical_apicid[cpu] = apicid; | 650 | cpu_2_logical_apicid[cpu] = apicid; |
647 | map_cpu_to_node(cpu, apicid_to_node(apicid)); | 651 | map_cpu_to_node(cpu, node); |
648 | } | 652 | } |
649 | 653 | ||
650 | static void unmap_cpu_to_logical_apicid(int cpu) | 654 | static void unmap_cpu_to_logical_apicid(int cpu) |
diff --git a/arch/i386/mm/boot_ioremap.c b/arch/i386/mm/boot_ioremap.c index 5d44f4f5ff59..4de11f508c3a 100644 --- a/arch/i386/mm/boot_ioremap.c +++ b/arch/i386/mm/boot_ioremap.c | |||
@@ -29,8 +29,11 @@ | |||
29 | */ | 29 | */ |
30 | 30 | ||
31 | #define BOOT_PTE_PTRS (PTRS_PER_PTE*2) | 31 | #define BOOT_PTE_PTRS (PTRS_PER_PTE*2) |
32 | #define boot_pte_index(address) \ | 32 | |
33 | (((address) >> PAGE_SHIFT) & (BOOT_PTE_PTRS - 1)) | 33 | static unsigned long boot_pte_index(unsigned long vaddr) |
34 | { | ||
35 | return __pa(vaddr) >> PAGE_SHIFT; | ||
36 | } | ||
34 | 37 | ||
35 | static inline boot_pte_t* boot_vaddr_to_pte(void *address) | 38 | static inline boot_pte_t* boot_vaddr_to_pte(void *address) |
36 | { | 39 | { |
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 0176556aeecc..32c3abededc6 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -771,16 +771,19 @@ int acpi_map_cpu2node(acpi_handle handle, int cpu, long physid) | |||
771 | { | 771 | { |
772 | #ifdef CONFIG_ACPI_NUMA | 772 | #ifdef CONFIG_ACPI_NUMA |
773 | int pxm_id; | 773 | int pxm_id; |
774 | int nid; | ||
774 | 775 | ||
775 | pxm_id = acpi_get_pxm(handle); | 776 | pxm_id = acpi_get_pxm(handle); |
776 | |||
777 | /* | 777 | /* |
778 | * Assuming that the container driver would have set the proximity | 778 | * We don't have cpu-only-node hotadd. But if the system equips |
779 | * domain and would have initialized pxm_to_node(pxm_id) && pxm_flag | 779 | * SRAT table, pxm is already found and node is ready. |
780 | * So, just pxm_to_nid(pxm) is OK. | ||
781 | * This code here is for the system which doesn't have full SRAT | ||
782 | * table for possible cpus. | ||
780 | */ | 783 | */ |
781 | node_cpuid[cpu].nid = (pxm_id < 0) ? 0 : pxm_to_node(pxm_id); | 784 | nid = acpi_map_pxm_to_node(pxm_id); |
782 | |||
783 | node_cpuid[cpu].phys_id = physid; | 785 | node_cpuid[cpu].phys_id = physid; |
786 | node_cpuid[cpu].nid = nid; | ||
784 | #endif | 787 | #endif |
785 | return (0); | 788 | return (0); |
786 | } | 789 | } |
diff --git a/arch/ia64/kernel/numa.c b/arch/ia64/kernel/numa.c index 1cc360c83e7a..20340631179f 100644 --- a/arch/ia64/kernel/numa.c +++ b/arch/ia64/kernel/numa.c | |||
@@ -29,6 +29,36 @@ EXPORT_SYMBOL(cpu_to_node_map); | |||
29 | 29 | ||
30 | cpumask_t node_to_cpu_mask[MAX_NUMNODES] __cacheline_aligned; | 30 | cpumask_t node_to_cpu_mask[MAX_NUMNODES] __cacheline_aligned; |
31 | 31 | ||
32 | void __cpuinit map_cpu_to_node(int cpu, int nid) | ||
33 | { | ||
34 | int oldnid; | ||
35 | if (nid < 0) { /* just initialize by zero */ | ||
36 | cpu_to_node_map[cpu] = 0; | ||
37 | return; | ||
38 | } | ||
39 | /* sanity check first */ | ||
40 | oldnid = cpu_to_node_map[cpu]; | ||
41 | if (cpu_isset(cpu, node_to_cpu_mask[oldnid])) { | ||
42 | return; /* nothing to do */ | ||
43 | } | ||
44 | /* we don't have cpu-driven node hot add yet... | ||
45 | In usual case, node is created from SRAT at boot time. */ | ||
46 | if (!node_online(nid)) | ||
47 | nid = first_online_node; | ||
48 | cpu_to_node_map[cpu] = nid; | ||
49 | cpu_set(cpu, node_to_cpu_mask[nid]); | ||
50 | return; | ||
51 | } | ||
52 | |||
53 | void __cpuinit unmap_cpu_from_node(int cpu, int nid) | ||
54 | { | ||
55 | WARN_ON(!cpu_isset(cpu, node_to_cpu_mask[nid])); | ||
56 | WARN_ON(cpu_to_node_map[cpu] != nid); | ||
57 | cpu_to_node_map[cpu] = 0; | ||
58 | cpu_clear(cpu, node_to_cpu_mask[nid]); | ||
59 | } | ||
60 | |||
61 | |||
32 | /** | 62 | /** |
33 | * build_cpu_to_node_map - setup cpu to node and node to cpumask arrays | 63 | * build_cpu_to_node_map - setup cpu to node and node to cpumask arrays |
34 | * | 64 | * |
@@ -49,8 +79,6 @@ void __init build_cpu_to_node_map(void) | |||
49 | node = node_cpuid[i].nid; | 79 | node = node_cpuid[i].nid; |
50 | break; | 80 | break; |
51 | } | 81 | } |
52 | cpu_to_node_map[cpu] = (node >= 0) ? node : 0; | 82 | map_cpu_to_node(cpu, node); |
53 | if (node >= 0) | ||
54 | cpu_set(cpu, node_to_cpu_mask[node]); | ||
55 | } | 83 | } |
56 | } | 84 | } |
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c index f648c610b10c..05bdf7affb43 100644 --- a/arch/ia64/kernel/topology.c +++ b/arch/ia64/kernel/topology.c | |||
@@ -36,6 +36,9 @@ int arch_register_cpu(int num) | |||
36 | */ | 36 | */ |
37 | if (!can_cpei_retarget() && is_cpu_cpei_target(num)) | 37 | if (!can_cpei_retarget() && is_cpu_cpei_target(num)) |
38 | sysfs_cpus[num].cpu.no_control = 1; | 38 | sysfs_cpus[num].cpu.no_control = 1; |
39 | #ifdef CONFIG_NUMA | ||
40 | map_cpu_to_node(num, node_cpuid[num].nid); | ||
41 | #endif | ||
39 | #endif | 42 | #endif |
40 | 43 | ||
41 | return register_cpu(&sysfs_cpus[num].cpu, num); | 44 | return register_cpu(&sysfs_cpus[num].cpu, num); |
@@ -45,7 +48,8 @@ int arch_register_cpu(int num) | |||
45 | 48 | ||
46 | void arch_unregister_cpu(int num) | 49 | void arch_unregister_cpu(int num) |
47 | { | 50 | { |
48 | return unregister_cpu(&sysfs_cpus[num].cpu); | 51 | unregister_cpu(&sysfs_cpus[num].cpu); |
52 | unmap_cpu_from_node(num, cpu_to_node(num)); | ||
49 | } | 53 | } |
50 | EXPORT_SYMBOL(arch_register_cpu); | 54 | EXPORT_SYMBOL(arch_register_cpu); |
51 | EXPORT_SYMBOL(arch_unregister_cpu); | 55 | EXPORT_SYMBOL(arch_unregister_cpu); |
diff --git a/arch/sparc64/solaris/misc.c b/arch/sparc64/solaris/misc.c index 8135ec322c9c..642541769a17 100644 --- a/arch/sparc64/solaris/misc.c +++ b/arch/sparc64/solaris/misc.c | |||
@@ -736,20 +736,15 @@ struct exec_domain solaris_exec_domain = { | |||
736 | 736 | ||
737 | extern int init_socksys(void); | 737 | extern int init_socksys(void); |
738 | 738 | ||
739 | #ifdef MODULE | ||
740 | |||
741 | MODULE_AUTHOR("Jakub Jelinek (jj@ultra.linux.cz), Patrik Rak (prak3264@ss1000.ms.mff.cuni.cz)"); | 739 | MODULE_AUTHOR("Jakub Jelinek (jj@ultra.linux.cz), Patrik Rak (prak3264@ss1000.ms.mff.cuni.cz)"); |
742 | MODULE_DESCRIPTION("Solaris binary emulation module"); | 740 | MODULE_DESCRIPTION("Solaris binary emulation module"); |
743 | MODULE_LICENSE("GPL"); | 741 | MODULE_LICENSE("GPL"); |
744 | 742 | ||
745 | #ifdef __sparc_v9__ | ||
746 | extern u32 tl0_solaris[8]; | 743 | extern u32 tl0_solaris[8]; |
747 | #define update_ttable(x) \ | 744 | #define update_ttable(x) \ |
748 | tl0_solaris[3] = (((long)(x) - (long)tl0_solaris - 3) >> 2) | 0x40000000; \ | 745 | tl0_solaris[3] = (((long)(x) - (long)tl0_solaris - 3) >> 2) | 0x40000000; \ |
749 | wmb(); \ | 746 | wmb(); \ |
750 | __asm__ __volatile__ ("flush %0" : : "r" (&tl0_solaris[3])) | 747 | __asm__ __volatile__ ("flush %0" : : "r" (&tl0_solaris[3])) |
751 | #else | ||
752 | #endif | ||
753 | 748 | ||
754 | extern u32 solaris_sparc_syscall[]; | 749 | extern u32 solaris_sparc_syscall[]; |
755 | extern u32 solaris_syscall[]; | 750 | extern u32 solaris_syscall[]; |
@@ -757,7 +752,7 @@ extern void cleanup_socksys(void); | |||
757 | 752 | ||
758 | extern u32 entry64_personality_patch; | 753 | extern u32 entry64_personality_patch; |
759 | 754 | ||
760 | int init_module(void) | 755 | static int __init solaris_init(void) |
761 | { | 756 | { |
762 | int ret; | 757 | int ret; |
763 | 758 | ||
@@ -777,19 +772,12 @@ int init_module(void) | |||
777 | return 0; | 772 | return 0; |
778 | } | 773 | } |
779 | 774 | ||
780 | void cleanup_module(void) | 775 | static void __exit solaris_exit(void) |
781 | { | 776 | { |
782 | update_ttable(solaris_syscall); | 777 | update_ttable(solaris_syscall); |
783 | cleanup_socksys(); | 778 | cleanup_socksys(); |
784 | unregister_exec_domain(&solaris_exec_domain); | 779 | unregister_exec_domain(&solaris_exec_domain); |
785 | } | 780 | } |
786 | 781 | ||
787 | #else | 782 | module_init(solaris_init); |
788 | int init_solaris_emul(void) | 783 | module_exit(solaris_exit); |
789 | { | ||
790 | register_exec_domain(&solaris_exec_domain); | ||
791 | init_socksys(); | ||
792 | return 0; | ||
793 | } | ||
794 | #endif | ||
795 | |||
diff --git a/arch/sparc64/solaris/socksys.c b/arch/sparc64/solaris/socksys.c index bc3df95bc057..7c90e41fd3be 100644 --- a/arch/sparc64/solaris/socksys.c +++ b/arch/sparc64/solaris/socksys.c | |||
@@ -168,8 +168,7 @@ static struct file_operations socksys_fops = { | |||
168 | .release = socksys_release, | 168 | .release = socksys_release, |
169 | }; | 169 | }; |
170 | 170 | ||
171 | int __init | 171 | int __init init_socksys(void) |
172 | init_socksys(void) | ||
173 | { | 172 | { |
174 | int ret; | 173 | int ret; |
175 | struct file * file; | 174 | struct file * file; |
@@ -199,8 +198,7 @@ init_socksys(void) | |||
199 | return 0; | 198 | return 0; |
200 | } | 199 | } |
201 | 200 | ||
202 | void | 201 | void __exit cleanup_socksys(void) |
203 | cleanup_socksys(void) | ||
204 | { | 202 | { |
205 | if (unregister_chrdev(30, "socksys")) | 203 | if (unregister_chrdev(30, "socksys")) |
206 | printk ("Couldn't unregister socksys character device\n"); | 204 | printk ("Couldn't unregister socksys character device\n"); |
diff --git a/drivers/ata/pata_pdc2027x.c b/drivers/ata/pata_pdc2027x.c index 56b8c1ee2937..31ab9c886209 100644 --- a/drivers/ata/pata_pdc2027x.c +++ b/drivers/ata/pata_pdc2027x.c | |||
@@ -242,7 +242,7 @@ MODULE_DEVICE_TABLE(pci, pdc2027x_pci_tbl); | |||
242 | * @ap: Port | 242 | * @ap: Port |
243 | * @offset: offset from mmio base | 243 | * @offset: offset from mmio base |
244 | */ | 244 | */ |
245 | static inline void* port_mmio(struct ata_port *ap, unsigned int offset) | 245 | static inline void __iomem *port_mmio(struct ata_port *ap, unsigned int offset) |
246 | { | 246 | { |
247 | return ap->host->mmio_base + ap->port_no * 0x100 + offset; | 247 | return ap->host->mmio_base + ap->port_no * 0x100 + offset; |
248 | } | 248 | } |
@@ -253,7 +253,7 @@ static inline void* port_mmio(struct ata_port *ap, unsigned int offset) | |||
253 | * @adev: device | 253 | * @adev: device |
254 | * @offset: offset from mmio base | 254 | * @offset: offset from mmio base |
255 | */ | 255 | */ |
256 | static inline void* dev_mmio(struct ata_port *ap, struct ata_device *adev, unsigned int offset) | 256 | static inline void __iomem *dev_mmio(struct ata_port *ap, struct ata_device *adev, unsigned int offset) |
257 | { | 257 | { |
258 | u8 adj = (adev->devno) ? 0x08 : 0x00; | 258 | u8 adj = (adev->devno) ? 0x08 : 0x00; |
259 | return port_mmio(ap, offset) + adj; | 259 | return port_mmio(ap, offset) + adj; |
@@ -758,7 +758,7 @@ static int __devinit pdc2027x_init_one(struct pci_dev *pdev, const struct pci_de | |||
758 | 758 | ||
759 | struct ata_probe_ent *probe_ent = NULL; | 759 | struct ata_probe_ent *probe_ent = NULL; |
760 | unsigned long base; | 760 | unsigned long base; |
761 | void *mmio_base; | 761 | void __iomem *mmio_base; |
762 | int rc; | 762 | int rc; |
763 | 763 | ||
764 | if (!printed_version++) | 764 | if (!printed_version++) |
diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c index 6e6a7c7a7eff..ab6429b4a84e 100644 --- a/drivers/char/rtc.c +++ b/drivers/char/rtc.c | |||
@@ -209,11 +209,12 @@ static const unsigned char days_in_mo[] = | |||
209 | */ | 209 | */ |
210 | static inline unsigned char rtc_is_updating(void) | 210 | static inline unsigned char rtc_is_updating(void) |
211 | { | 211 | { |
212 | unsigned long flags; | ||
212 | unsigned char uip; | 213 | unsigned char uip; |
213 | 214 | ||
214 | spin_lock_irq(&rtc_lock); | 215 | spin_lock_irqsave(&rtc_lock, flags); |
215 | uip = (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP); | 216 | uip = (CMOS_READ(RTC_FREQ_SELECT) & RTC_UIP); |
216 | spin_unlock_irq(&rtc_lock); | 217 | spin_unlock_irqrestore(&rtc_lock, flags); |
217 | return uip; | 218 | return uip; |
218 | } | 219 | } |
219 | 220 | ||
diff --git a/drivers/media/video/videodev.c b/drivers/media/video/videodev.c index 88bf2af2a0e7..edd7b83c3464 100644 --- a/drivers/media/video/videodev.c +++ b/drivers/media/video/videodev.c | |||
@@ -836,7 +836,7 @@ static int __video_do_ioctl(struct inode *inode, struct file *file, | |||
836 | break; | 836 | break; |
837 | } | 837 | } |
838 | 838 | ||
839 | if (index<=0 || index >= vfd->tvnormsize) { | 839 | if (index < 0 || index >= vfd->tvnormsize) { |
840 | ret=-EINVAL; | 840 | ret=-EINVAL; |
841 | break; | 841 | break; |
842 | } | 842 | } |
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c index 09a481a71838..157471846349 100644 --- a/drivers/net/qla3xxx.c +++ b/drivers/net/qla3xxx.c | |||
@@ -189,31 +189,31 @@ static u32 ql_read_page0_reg(struct ql3_adapter *qdev, u32 __iomem *reg) | |||
189 | } | 189 | } |
190 | 190 | ||
191 | static void ql_write_common_reg_l(struct ql3_adapter *qdev, | 191 | static void ql_write_common_reg_l(struct ql3_adapter *qdev, |
192 | u32 * reg, u32 value) | 192 | u32 __iomem *reg, u32 value) |
193 | { | 193 | { |
194 | unsigned long hw_flags; | 194 | unsigned long hw_flags; |
195 | 195 | ||
196 | spin_lock_irqsave(&qdev->hw_lock, hw_flags); | 196 | spin_lock_irqsave(&qdev->hw_lock, hw_flags); |
197 | writel(value, (u32 *) reg); | 197 | writel(value, reg); |
198 | readl(reg); | 198 | readl(reg); |
199 | spin_unlock_irqrestore(&qdev->hw_lock, hw_flags); | 199 | spin_unlock_irqrestore(&qdev->hw_lock, hw_flags); |
200 | return; | 200 | return; |
201 | } | 201 | } |
202 | 202 | ||
203 | static void ql_write_common_reg(struct ql3_adapter *qdev, | 203 | static void ql_write_common_reg(struct ql3_adapter *qdev, |
204 | u32 * reg, u32 value) | 204 | u32 __iomem *reg, u32 value) |
205 | { | 205 | { |
206 | writel(value, (u32 *) reg); | 206 | writel(value, reg); |
207 | readl(reg); | 207 | readl(reg); |
208 | return; | 208 | return; |
209 | } | 209 | } |
210 | 210 | ||
211 | static void ql_write_page0_reg(struct ql3_adapter *qdev, | 211 | static void ql_write_page0_reg(struct ql3_adapter *qdev, |
212 | u32 * reg, u32 value) | 212 | u32 __iomem *reg, u32 value) |
213 | { | 213 | { |
214 | if (qdev->current_page != 0) | 214 | if (qdev->current_page != 0) |
215 | ql_set_register_page(qdev,0); | 215 | ql_set_register_page(qdev,0); |
216 | writel(value, (u32 *) reg); | 216 | writel(value, reg); |
217 | readl(reg); | 217 | readl(reg); |
218 | return; | 218 | return; |
219 | } | 219 | } |
@@ -222,11 +222,11 @@ static void ql_write_page0_reg(struct ql3_adapter *qdev, | |||
222 | * Caller holds hw_lock. Only called during init. | 222 | * Caller holds hw_lock. Only called during init. |
223 | */ | 223 | */ |
224 | static void ql_write_page1_reg(struct ql3_adapter *qdev, | 224 | static void ql_write_page1_reg(struct ql3_adapter *qdev, |
225 | u32 * reg, u32 value) | 225 | u32 __iomem *reg, u32 value) |
226 | { | 226 | { |
227 | if (qdev->current_page != 1) | 227 | if (qdev->current_page != 1) |
228 | ql_set_register_page(qdev,1); | 228 | ql_set_register_page(qdev,1); |
229 | writel(value, (u32 *) reg); | 229 | writel(value, reg); |
230 | readl(reg); | 230 | readl(reg); |
231 | return; | 231 | return; |
232 | } | 232 | } |
@@ -235,11 +235,11 @@ static void ql_write_page1_reg(struct ql3_adapter *qdev, | |||
235 | * Caller holds hw_lock. Only called during init. | 235 | * Caller holds hw_lock. Only called during init. |
236 | */ | 236 | */ |
237 | static void ql_write_page2_reg(struct ql3_adapter *qdev, | 237 | static void ql_write_page2_reg(struct ql3_adapter *qdev, |
238 | u32 * reg, u32 value) | 238 | u32 __iomem *reg, u32 value) |
239 | { | 239 | { |
240 | if (qdev->current_page != 2) | 240 | if (qdev->current_page != 2) |
241 | ql_set_register_page(qdev,2); | 241 | ql_set_register_page(qdev,2); |
242 | writel(value, (u32 *) reg); | 242 | writel(value, reg); |
243 | readl(reg); | 243 | readl(reg); |
244 | return; | 244 | return; |
245 | } | 245 | } |
@@ -1687,7 +1687,7 @@ static void ql_update_lrg_bufq_prod_index(struct ql3_adapter *qdev) | |||
1687 | qdev->lrg_buf_next_free = lrg_buf_q_ele; | 1687 | qdev->lrg_buf_next_free = lrg_buf_q_ele; |
1688 | 1688 | ||
1689 | ql_write_common_reg(qdev, | 1689 | ql_write_common_reg(qdev, |
1690 | (u32 *) & port_regs->CommonRegs. | 1690 | &port_regs->CommonRegs. |
1691 | rxLargeQProducerIndex, | 1691 | rxLargeQProducerIndex, |
1692 | qdev->lrg_buf_q_producer_index); | 1692 | qdev->lrg_buf_q_producer_index); |
1693 | } | 1693 | } |
@@ -1924,13 +1924,13 @@ static int ql_tx_rx_clean(struct ql3_adapter *qdev, | |||
1924 | } | 1924 | } |
1925 | 1925 | ||
1926 | ql_write_common_reg(qdev, | 1926 | ql_write_common_reg(qdev, |
1927 | (u32 *) & port_regs->CommonRegs. | 1927 | &port_regs->CommonRegs. |
1928 | rxSmallQProducerIndex, | 1928 | rxSmallQProducerIndex, |
1929 | qdev->small_buf_q_producer_index); | 1929 | qdev->small_buf_q_producer_index); |
1930 | } | 1930 | } |
1931 | 1931 | ||
1932 | ql_write_common_reg(qdev, | 1932 | ql_write_common_reg(qdev, |
1933 | (u32 *) & port_regs->CommonRegs.rspQConsumerIndex, | 1933 | &port_regs->CommonRegs.rspQConsumerIndex, |
1934 | qdev->rsp_consumer_index); | 1934 | qdev->rsp_consumer_index); |
1935 | spin_unlock_irqrestore(&qdev->hw_lock, hw_flags); | 1935 | spin_unlock_irqrestore(&qdev->hw_lock, hw_flags); |
1936 | 1936 | ||
@@ -2057,7 +2057,7 @@ static int ql3xxx_send(struct sk_buff *skb, struct net_device *ndev) | |||
2057 | qdev->req_producer_index = 0; | 2057 | qdev->req_producer_index = 0; |
2058 | wmb(); | 2058 | wmb(); |
2059 | ql_write_common_reg_l(qdev, | 2059 | ql_write_common_reg_l(qdev, |
2060 | (u32 *) & port_regs->CommonRegs.reqQProducerIndex, | 2060 | &port_regs->CommonRegs.reqQProducerIndex, |
2061 | qdev->req_producer_index); | 2061 | qdev->req_producer_index); |
2062 | 2062 | ||
2063 | ndev->trans_start = jiffies; | 2063 | ndev->trans_start = jiffies; |
@@ -2474,8 +2474,8 @@ static void ql_free_mem_resources(struct ql3_adapter *qdev) | |||
2474 | 2474 | ||
2475 | static int ql_init_misc_registers(struct ql3_adapter *qdev) | 2475 | static int ql_init_misc_registers(struct ql3_adapter *qdev) |
2476 | { | 2476 | { |
2477 | struct ql3xxx_local_ram_registers *local_ram = | 2477 | struct ql3xxx_local_ram_registers __iomem *local_ram = |
2478 | (struct ql3xxx_local_ram_registers *)qdev->mem_map_registers; | 2478 | (void __iomem *)qdev->mem_map_registers; |
2479 | 2479 | ||
2480 | if(ql_sem_spinlock(qdev, QL_DDR_RAM_SEM_MASK, | 2480 | if(ql_sem_spinlock(qdev, QL_DDR_RAM_SEM_MASK, |
2481 | (QL_RESOURCE_BITS_BASE_CODE | (qdev->mac_index) * | 2481 | (QL_RESOURCE_BITS_BASE_CODE | (qdev->mac_index) * |
@@ -2535,7 +2535,7 @@ static int ql_adapter_initialize(struct ql3_adapter *qdev) | |||
2535 | u32 value; | 2535 | u32 value; |
2536 | struct ql3xxx_port_registers __iomem *port_regs = qdev->mem_map_registers; | 2536 | struct ql3xxx_port_registers __iomem *port_regs = qdev->mem_map_registers; |
2537 | struct ql3xxx_host_memory_registers __iomem *hmem_regs = | 2537 | struct ql3xxx_host_memory_registers __iomem *hmem_regs = |
2538 | (struct ql3xxx_host_memory_registers *)port_regs; | 2538 | (void __iomem *)port_regs; |
2539 | u32 delay = 10; | 2539 | u32 delay = 10; |
2540 | int status = 0; | 2540 | int status = 0; |
2541 | 2541 | ||
@@ -2640,11 +2640,11 @@ static int ql_adapter_initialize(struct ql3_adapter *qdev) | |||
2640 | qdev->lrg_buf_free_tail = NULL; | 2640 | qdev->lrg_buf_free_tail = NULL; |
2641 | 2641 | ||
2642 | ql_write_common_reg(qdev, | 2642 | ql_write_common_reg(qdev, |
2643 | (u32 *) & port_regs->CommonRegs. | 2643 | &port_regs->CommonRegs. |
2644 | rxSmallQProducerIndex, | 2644 | rxSmallQProducerIndex, |
2645 | qdev->small_buf_q_producer_index); | 2645 | qdev->small_buf_q_producer_index); |
2646 | ql_write_common_reg(qdev, | 2646 | ql_write_common_reg(qdev, |
2647 | (u32 *) & port_regs->CommonRegs. | 2647 | &port_regs->CommonRegs. |
2648 | rxLargeQProducerIndex, | 2648 | rxLargeQProducerIndex, |
2649 | qdev->lrg_buf_q_producer_index); | 2649 | qdev->lrg_buf_q_producer_index); |
2650 | 2650 | ||
@@ -2787,7 +2787,7 @@ static int ql_adapter_reset(struct ql3_adapter *qdev) | |||
2787 | "%s: Issue soft reset to chip.\n", | 2787 | "%s: Issue soft reset to chip.\n", |
2788 | qdev->ndev->name); | 2788 | qdev->ndev->name); |
2789 | ql_write_common_reg(qdev, | 2789 | ql_write_common_reg(qdev, |
2790 | (u32 *) & port_regs->CommonRegs.ispControlStatus, | 2790 | &port_regs->CommonRegs.ispControlStatus, |
2791 | ((ISP_CONTROL_SR << 16) | ISP_CONTROL_SR)); | 2791 | ((ISP_CONTROL_SR << 16) | ISP_CONTROL_SR)); |
2792 | 2792 | ||
2793 | /* Wait 3 seconds for reset to complete. */ | 2793 | /* Wait 3 seconds for reset to complete. */ |
@@ -2817,7 +2817,7 @@ static int ql_adapter_reset(struct ql3_adapter *qdev) | |||
2817 | printk(KERN_DEBUG PFX | 2817 | printk(KERN_DEBUG PFX |
2818 | "ql_adapter_reset: clearing RI after reset.\n"); | 2818 | "ql_adapter_reset: clearing RI after reset.\n"); |
2819 | ql_write_common_reg(qdev, | 2819 | ql_write_common_reg(qdev, |
2820 | (u32 *) & port_regs->CommonRegs. | 2820 | &port_regs->CommonRegs. |
2821 | ispControlStatus, | 2821 | ispControlStatus, |
2822 | ((ISP_CONTROL_RI << 16) | ISP_CONTROL_RI)); | 2822 | ((ISP_CONTROL_RI << 16) | ISP_CONTROL_RI)); |
2823 | } | 2823 | } |
@@ -2825,7 +2825,7 @@ static int ql_adapter_reset(struct ql3_adapter *qdev) | |||
2825 | if (max_wait_time == 0) { | 2825 | if (max_wait_time == 0) { |
2826 | /* Issue Force Soft Reset */ | 2826 | /* Issue Force Soft Reset */ |
2827 | ql_write_common_reg(qdev, | 2827 | ql_write_common_reg(qdev, |
2828 | (u32 *) & port_regs->CommonRegs. | 2828 | &port_regs->CommonRegs. |
2829 | ispControlStatus, | 2829 | ispControlStatus, |
2830 | ((ISP_CONTROL_FSR << 16) | | 2830 | ((ISP_CONTROL_FSR << 16) | |
2831 | ISP_CONTROL_FSR)); | 2831 | ISP_CONTROL_FSR)); |
@@ -3243,8 +3243,7 @@ static void ql_reset_work(struct ql3_adapter *qdev) | |||
3243 | "%s: clearing NRI after reset.\n", | 3243 | "%s: clearing NRI after reset.\n", |
3244 | qdev->ndev->name); | 3244 | qdev->ndev->name); |
3245 | ql_write_common_reg(qdev, | 3245 | ql_write_common_reg(qdev, |
3246 | (u32 *) & | 3246 | &port_regs-> |
3247 | port_regs-> | ||
3248 | CommonRegs. | 3247 | CommonRegs. |
3249 | ispControlStatus, | 3248 | ispControlStatus, |
3250 | ((ISP_CONTROL_RI << | 3249 | ((ISP_CONTROL_RI << |
@@ -3509,7 +3508,7 @@ static void __devexit ql3xxx_remove(struct pci_dev *pdev) | |||
3509 | qdev->workqueue = NULL; | 3508 | qdev->workqueue = NULL; |
3510 | } | 3509 | } |
3511 | 3510 | ||
3512 | iounmap((void *)qdev->mmap_virt_base); | 3511 | iounmap(qdev->mem_map_registers); |
3513 | pci_release_regions(pdev); | 3512 | pci_release_regions(pdev); |
3514 | pci_set_drvdata(pdev, NULL); | 3513 | pci_set_drvdata(pdev, NULL); |
3515 | free_netdev(ndev); | 3514 | free_netdev(ndev); |
diff --git a/drivers/net/qla3xxx.h b/drivers/net/qla3xxx.h index 9492cee6b083..65da2c0bfda6 100644 --- a/drivers/net/qla3xxx.h +++ b/drivers/net/qla3xxx.h | |||
@@ -1093,7 +1093,7 @@ struct ql3_adapter { | |||
1093 | spinlock_t hw_lock; | 1093 | spinlock_t hw_lock; |
1094 | 1094 | ||
1095 | /* PCI Bus Relative Register Addresses */ | 1095 | /* PCI Bus Relative Register Addresses */ |
1096 | u8 *mmap_virt_base; /* stores return value from ioremap() */ | 1096 | u8 __iomem *mmap_virt_base; /* stores return value from ioremap() */ |
1097 | struct ql3xxx_port_registers __iomem *mem_map_registers; | 1097 | struct ql3xxx_port_registers __iomem *mem_map_registers; |
1098 | u32 current_page; /* tracks current register page */ | 1098 | u32 current_page; /* tracks current register page */ |
1099 | 1099 | ||
diff --git a/drivers/net/sunlance.c b/drivers/net/sunlance.c index 77670741e101..feb42db10ee1 100644 --- a/drivers/net/sunlance.c +++ b/drivers/net/sunlance.c | |||
@@ -1323,9 +1323,9 @@ static const struct ethtool_ops sparc_lance_ethtool_ops = { | |||
1323 | .get_link = sparc_lance_get_link, | 1323 | .get_link = sparc_lance_get_link, |
1324 | }; | 1324 | }; |
1325 | 1325 | ||
1326 | static int __init sparc_lance_probe_one(struct sbus_dev *sdev, | 1326 | static int __devinit sparc_lance_probe_one(struct sbus_dev *sdev, |
1327 | struct sbus_dma *ledma, | 1327 | struct sbus_dma *ledma, |
1328 | struct sbus_dev *lebuffer) | 1328 | struct sbus_dev *lebuffer) |
1329 | { | 1329 | { |
1330 | static unsigned version_printed; | 1330 | static unsigned version_printed; |
1331 | struct net_device *dev; | 1331 | struct net_device *dev; |
@@ -1515,7 +1515,7 @@ fail: | |||
1515 | } | 1515 | } |
1516 | 1516 | ||
1517 | /* On 4m, find the associated dma for the lance chip */ | 1517 | /* On 4m, find the associated dma for the lance chip */ |
1518 | static inline struct sbus_dma *find_ledma(struct sbus_dev *sdev) | 1518 | static struct sbus_dma * __devinit find_ledma(struct sbus_dev *sdev) |
1519 | { | 1519 | { |
1520 | struct sbus_dma *p; | 1520 | struct sbus_dma *p; |
1521 | 1521 | ||
@@ -1533,7 +1533,7 @@ static inline struct sbus_dma *find_ledma(struct sbus_dev *sdev) | |||
1533 | 1533 | ||
1534 | /* Find all the lance cards on the system and initialize them */ | 1534 | /* Find all the lance cards on the system and initialize them */ |
1535 | static struct sbus_dev sun4_sdev; | 1535 | static struct sbus_dev sun4_sdev; |
1536 | static int __init sparc_lance_init(void) | 1536 | static int __devinit sparc_lance_init(void) |
1537 | { | 1537 | { |
1538 | if ((idprom->id_machtype == (SM_SUN4|SM_4_330)) || | 1538 | if ((idprom->id_machtype == (SM_SUN4|SM_4_330)) || |
1539 | (idprom->id_machtype == (SM_SUN4|SM_4_470))) { | 1539 | (idprom->id_machtype == (SM_SUN4|SM_4_470))) { |
diff --git a/drivers/scsi/aic94xx/aic94xx.h b/drivers/scsi/aic94xx/aic94xx.h index 1bd5b4ecf3d5..71a031df7a34 100644 --- a/drivers/scsi/aic94xx/aic94xx.h +++ b/drivers/scsi/aic94xx/aic94xx.h | |||
@@ -94,7 +94,7 @@ void asd_dev_gone(struct domain_device *dev); | |||
94 | 94 | ||
95 | void asd_invalidate_edb(struct asd_ascb *ascb, int edb_id); | 95 | void asd_invalidate_edb(struct asd_ascb *ascb, int edb_id); |
96 | 96 | ||
97 | int asd_execute_task(struct sas_task *, int num, unsigned long gfp_flags); | 97 | int asd_execute_task(struct sas_task *, int num, gfp_t gfp_flags); |
98 | 98 | ||
99 | /* ---------- TMFs ---------- */ | 99 | /* ---------- TMFs ---------- */ |
100 | int asd_abort_task(struct sas_task *); | 100 | int asd_abort_task(struct sas_task *); |
diff --git a/drivers/scsi/aic94xx/aic94xx_hwi.c b/drivers/scsi/aic94xx/aic94xx_hwi.c index a24201351108..1d8c5e5f442e 100644 --- a/drivers/scsi/aic94xx/aic94xx_hwi.c +++ b/drivers/scsi/aic94xx/aic94xx_hwi.c | |||
@@ -267,7 +267,7 @@ static int asd_init_dl(struct asd_ha_struct *asd_ha) | |||
267 | 267 | ||
268 | /* ---------- EDB and ESCB init ---------- */ | 268 | /* ---------- EDB and ESCB init ---------- */ |
269 | 269 | ||
270 | static int asd_alloc_edbs(struct asd_ha_struct *asd_ha, unsigned int gfp_flags) | 270 | static int asd_alloc_edbs(struct asd_ha_struct *asd_ha, gfp_t gfp_flags) |
271 | { | 271 | { |
272 | struct asd_seq_data *seq = &asd_ha->seq; | 272 | struct asd_seq_data *seq = &asd_ha->seq; |
273 | int i; | 273 | int i; |
@@ -298,7 +298,7 @@ Err_unroll: | |||
298 | } | 298 | } |
299 | 299 | ||
300 | static int asd_alloc_escbs(struct asd_ha_struct *asd_ha, | 300 | static int asd_alloc_escbs(struct asd_ha_struct *asd_ha, |
301 | unsigned int gfp_flags) | 301 | gfp_t gfp_flags) |
302 | { | 302 | { |
303 | struct asd_seq_data *seq = &asd_ha->seq; | 303 | struct asd_seq_data *seq = &asd_ha->seq; |
304 | struct asd_ascb *escb; | 304 | struct asd_ascb *escb; |
@@ -1028,7 +1028,7 @@ irqreturn_t asd_hw_isr(int irq, void *dev_id, struct pt_regs *regs) | |||
1028 | /* ---------- SCB handling ---------- */ | 1028 | /* ---------- SCB handling ---------- */ |
1029 | 1029 | ||
1030 | static inline struct asd_ascb *asd_ascb_alloc(struct asd_ha_struct *asd_ha, | 1030 | static inline struct asd_ascb *asd_ascb_alloc(struct asd_ha_struct *asd_ha, |
1031 | unsigned int gfp_flags) | 1031 | gfp_t gfp_flags) |
1032 | { | 1032 | { |
1033 | extern kmem_cache_t *asd_ascb_cache; | 1033 | extern kmem_cache_t *asd_ascb_cache; |
1034 | struct asd_seq_data *seq = &asd_ha->seq; | 1034 | struct asd_seq_data *seq = &asd_ha->seq; |
@@ -1086,7 +1086,7 @@ undo: | |||
1086 | */ | 1086 | */ |
1087 | struct asd_ascb *asd_ascb_alloc_list(struct asd_ha_struct | 1087 | struct asd_ascb *asd_ascb_alloc_list(struct asd_ha_struct |
1088 | *asd_ha, int *num, | 1088 | *asd_ha, int *num, |
1089 | unsigned int gfp_flags) | 1089 | gfp_t gfp_flags) |
1090 | { | 1090 | { |
1091 | struct asd_ascb *first = NULL; | 1091 | struct asd_ascb *first = NULL; |
1092 | 1092 | ||
diff --git a/drivers/scsi/aic94xx/aic94xx_hwi.h b/drivers/scsi/aic94xx/aic94xx_hwi.h index c7d505388fed..8498144aa5e1 100644 --- a/drivers/scsi/aic94xx/aic94xx_hwi.h +++ b/drivers/scsi/aic94xx/aic94xx_hwi.h | |||
@@ -242,7 +242,7 @@ struct asd_ha_struct { | |||
242 | 242 | ||
243 | /* ---------- DMA allocs ---------- */ | 243 | /* ---------- DMA allocs ---------- */ |
244 | 244 | ||
245 | static inline struct asd_dma_tok *asd_dmatok_alloc(unsigned int flags) | 245 | static inline struct asd_dma_tok *asd_dmatok_alloc(gfp_t flags) |
246 | { | 246 | { |
247 | return kmem_cache_alloc(asd_dma_token_cache, flags); | 247 | return kmem_cache_alloc(asd_dma_token_cache, flags); |
248 | } | 248 | } |
@@ -254,7 +254,7 @@ static inline void asd_dmatok_free(struct asd_dma_tok *token) | |||
254 | 254 | ||
255 | static inline struct asd_dma_tok *asd_alloc_coherent(struct asd_ha_struct * | 255 | static inline struct asd_dma_tok *asd_alloc_coherent(struct asd_ha_struct * |
256 | asd_ha, size_t size, | 256 | asd_ha, size_t size, |
257 | unsigned int flags) | 257 | gfp_t flags) |
258 | { | 258 | { |
259 | struct asd_dma_tok *token = asd_dmatok_alloc(flags); | 259 | struct asd_dma_tok *token = asd_dmatok_alloc(flags); |
260 | if (token) { | 260 | if (token) { |
@@ -376,7 +376,7 @@ irqreturn_t asd_hw_isr(int irq, void *dev_id, struct pt_regs *regs); | |||
376 | 376 | ||
377 | struct asd_ascb *asd_ascb_alloc_list(struct asd_ha_struct | 377 | struct asd_ascb *asd_ascb_alloc_list(struct asd_ha_struct |
378 | *asd_ha, int *num, | 378 | *asd_ha, int *num, |
379 | unsigned int gfp_mask); | 379 | gfp_t gfp_mask); |
380 | 380 | ||
381 | int asd_post_ascb_list(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb, | 381 | int asd_post_ascb_list(struct asd_ha_struct *asd_ha, struct asd_ascb *ascb, |
382 | int num); | 382 | int num); |
diff --git a/drivers/scsi/aic94xx/aic94xx_seq.c b/drivers/scsi/aic94xx/aic94xx_seq.c index d9b6da5fd06c..56e4b3ba6a08 100644 --- a/drivers/scsi/aic94xx/aic94xx_seq.c +++ b/drivers/scsi/aic94xx/aic94xx_seq.c | |||
@@ -764,7 +764,7 @@ static void asd_init_lseq_mdp(struct asd_ha_struct *asd_ha, int lseq) | |||
764 | asd_write_reg_word(asd_ha, LmSEQ_FIRST_INV_SCB_SITE(lseq), | 764 | asd_write_reg_word(asd_ha, LmSEQ_FIRST_INV_SCB_SITE(lseq), |
765 | (u16)last_scb_site_no+1); | 765 | (u16)last_scb_site_no+1); |
766 | asd_write_reg_word(asd_ha, LmSEQ_INTEN_SAVE(lseq), | 766 | asd_write_reg_word(asd_ha, LmSEQ_INTEN_SAVE(lseq), |
767 | (u16) LmM0INTEN_MASK & 0xFFFF0000 >> 16); | 767 | (u16) ((LmM0INTEN_MASK & 0xFFFF0000) >> 16)); |
768 | asd_write_reg_word(asd_ha, LmSEQ_INTEN_SAVE(lseq) + 2, | 768 | asd_write_reg_word(asd_ha, LmSEQ_INTEN_SAVE(lseq) + 2, |
769 | (u16) LmM0INTEN_MASK & 0xFFFF); | 769 | (u16) LmM0INTEN_MASK & 0xFFFF); |
770 | asd_write_reg_byte(asd_ha, LmSEQ_LINK_RST_FRM_LEN(lseq), 0); | 770 | asd_write_reg_byte(asd_ha, LmSEQ_LINK_RST_FRM_LEN(lseq), 0); |
diff --git a/drivers/scsi/aic94xx/aic94xx_task.c b/drivers/scsi/aic94xx/aic94xx_task.c index 285e70dae933..d202ed5a6709 100644 --- a/drivers/scsi/aic94xx/aic94xx_task.c +++ b/drivers/scsi/aic94xx/aic94xx_task.c | |||
@@ -53,7 +53,7 @@ static const u8 data_dir_flags[] = { | |||
53 | 53 | ||
54 | static inline int asd_map_scatterlist(struct sas_task *task, | 54 | static inline int asd_map_scatterlist(struct sas_task *task, |
55 | struct sg_el *sg_arr, | 55 | struct sg_el *sg_arr, |
56 | unsigned long gfp_flags) | 56 | gfp_t gfp_flags) |
57 | { | 57 | { |
58 | struct asd_ascb *ascb = task->lldd_task; | 58 | struct asd_ascb *ascb = task->lldd_task; |
59 | struct asd_ha_struct *asd_ha = ascb->ha; | 59 | struct asd_ha_struct *asd_ha = ascb->ha; |
@@ -368,7 +368,7 @@ Again: | |||
368 | /* ---------- ATA ---------- */ | 368 | /* ---------- ATA ---------- */ |
369 | 369 | ||
370 | static int asd_build_ata_ascb(struct asd_ascb *ascb, struct sas_task *task, | 370 | static int asd_build_ata_ascb(struct asd_ascb *ascb, struct sas_task *task, |
371 | unsigned long gfp_flags) | 371 | gfp_t gfp_flags) |
372 | { | 372 | { |
373 | struct domain_device *dev = task->dev; | 373 | struct domain_device *dev = task->dev; |
374 | struct scb *scb; | 374 | struct scb *scb; |
@@ -437,7 +437,7 @@ static void asd_unbuild_ata_ascb(struct asd_ascb *a) | |||
437 | /* ---------- SMP ---------- */ | 437 | /* ---------- SMP ---------- */ |
438 | 438 | ||
439 | static int asd_build_smp_ascb(struct asd_ascb *ascb, struct sas_task *task, | 439 | static int asd_build_smp_ascb(struct asd_ascb *ascb, struct sas_task *task, |
440 | unsigned long gfp_flags) | 440 | gfp_t gfp_flags) |
441 | { | 441 | { |
442 | struct asd_ha_struct *asd_ha = ascb->ha; | 442 | struct asd_ha_struct *asd_ha = ascb->ha; |
443 | struct domain_device *dev = task->dev; | 443 | struct domain_device *dev = task->dev; |
@@ -487,7 +487,7 @@ static void asd_unbuild_smp_ascb(struct asd_ascb *a) | |||
487 | /* ---------- SSP ---------- */ | 487 | /* ---------- SSP ---------- */ |
488 | 488 | ||
489 | static int asd_build_ssp_ascb(struct asd_ascb *ascb, struct sas_task *task, | 489 | static int asd_build_ssp_ascb(struct asd_ascb *ascb, struct sas_task *task, |
490 | unsigned long gfp_flags) | 490 | gfp_t gfp_flags) |
491 | { | 491 | { |
492 | struct domain_device *dev = task->dev; | 492 | struct domain_device *dev = task->dev; |
493 | struct scb *scb; | 493 | struct scb *scb; |
@@ -550,7 +550,7 @@ static inline int asd_can_queue(struct asd_ha_struct *asd_ha, int num) | |||
550 | } | 550 | } |
551 | 551 | ||
552 | int asd_execute_task(struct sas_task *task, const int num, | 552 | int asd_execute_task(struct sas_task *task, const int num, |
553 | unsigned long gfp_flags) | 553 | gfp_t gfp_flags) |
554 | { | 554 | { |
555 | int res = 0; | 555 | int res = 0; |
556 | LIST_HEAD(alist); | 556 | LIST_HEAD(alist); |
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c index 43e0e4e36934..7f9e89bcac7e 100644 --- a/drivers/scsi/libsas/sas_scsi_host.c +++ b/drivers/scsi/libsas/sas_scsi_host.c | |||
@@ -134,7 +134,7 @@ static enum task_attribute sas_scsi_get_task_attr(struct scsi_cmnd *cmd) | |||
134 | 134 | ||
135 | static struct sas_task *sas_create_task(struct scsi_cmnd *cmd, | 135 | static struct sas_task *sas_create_task(struct scsi_cmnd *cmd, |
136 | struct domain_device *dev, | 136 | struct domain_device *dev, |
137 | unsigned long gfp_flags) | 137 | gfp_t gfp_flags) |
138 | { | 138 | { |
139 | struct sas_task *task = sas_alloc_task(gfp_flags); | 139 | struct sas_task *task = sas_alloc_task(gfp_flags); |
140 | struct scsi_lun lun; | 140 | struct scsi_lun lun; |
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index c51b5769eac8..7a054f9d1ee3 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c | |||
@@ -96,22 +96,26 @@ unsigned int scsi_logging_level; | |||
96 | EXPORT_SYMBOL(scsi_logging_level); | 96 | EXPORT_SYMBOL(scsi_logging_level); |
97 | #endif | 97 | #endif |
98 | 98 | ||
99 | /* NB: These are exposed through /proc/scsi/scsi and form part of the ABI. | ||
100 | * You may not alter any existing entry (although adding new ones is | ||
101 | * encouraged once assigned by ANSI/INCITS T10 | ||
102 | */ | ||
99 | static const char *const scsi_device_types[] = { | 103 | static const char *const scsi_device_types[] = { |
100 | "Direct access ", | 104 | "Direct-Access ", |
101 | "Sequential access", | 105 | "Sequential-Access", |
102 | "Printer ", | 106 | "Printer ", |
103 | "Processor ", | 107 | "Processor ", |
104 | "WORM ", | 108 | "WORM ", |
105 | "CD/DVD ", | 109 | "CD-ROM ", |
106 | "Scanner ", | 110 | "Scanner ", |
107 | "Optical memory ", | 111 | "Optical Device ", |
108 | "Media changer ", | 112 | "Medium Changer ", |
109 | "Communications ", | 113 | "Communications ", |
110 | "ASC IT8 ", | 114 | "ASC IT8 ", |
111 | "ASC IT8 ", | 115 | "ASC IT8 ", |
112 | "RAID ", | 116 | "RAID ", |
113 | "Enclosure ", | 117 | "Enclosure ", |
114 | "Direct access RBC", | 118 | "Direct-Access-RBC", |
115 | "Optical card ", | 119 | "Optical card ", |
116 | "Bridge controller", | 120 | "Bridge controller", |
117 | "Object storage ", | 121 | "Object storage ", |
diff --git a/drivers/video/fbsysfs.c b/drivers/video/fbsysfs.c index 4f78f234473d..c151dcf68786 100644 --- a/drivers/video/fbsysfs.c +++ b/drivers/video/fbsysfs.c | |||
@@ -397,6 +397,12 @@ static ssize_t store_bl_curve(struct class_device *class_device, | |||
397 | u8 tmp_curve[FB_BACKLIGHT_LEVELS]; | 397 | u8 tmp_curve[FB_BACKLIGHT_LEVELS]; |
398 | unsigned int i; | 398 | unsigned int i; |
399 | 399 | ||
400 | /* Some drivers don't use framebuffer_alloc(), but those also | ||
401 | * don't have backlights. | ||
402 | */ | ||
403 | if (!fb_info || !fb_info->bl_dev) | ||
404 | return -ENODEV; | ||
405 | |||
400 | if (count != (FB_BACKLIGHT_LEVELS / 8 * 24)) | 406 | if (count != (FB_BACKLIGHT_LEVELS / 8 * 24)) |
401 | return -EINVAL; | 407 | return -EINVAL; |
402 | 408 | ||
@@ -430,6 +436,12 @@ static ssize_t show_bl_curve(struct class_device *class_device, char *buf) | |||
430 | ssize_t len = 0; | 436 | ssize_t len = 0; |
431 | unsigned int i; | 437 | unsigned int i; |
432 | 438 | ||
439 | /* Some drivers don't use framebuffer_alloc(), but those also | ||
440 | * don't have backlights. | ||
441 | */ | ||
442 | if (!fb_info || !fb_info->bl_dev) | ||
443 | return -ENODEV; | ||
444 | |||
433 | mutex_lock(&fb_info->bl_mutex); | 445 | mutex_lock(&fb_info->bl_mutex); |
434 | for (i = 0; i < FB_BACKLIGHT_LEVELS; i += 8) | 446 | for (i = 0; i < FB_BACKLIGHT_LEVELS; i += 8) |
435 | len += snprintf(&buf[len], PAGE_SIZE, | 447 | len += snprintf(&buf[len], PAGE_SIZE, |
diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c index 8dbd44f10e9d..d96e5c14a9ca 100644 --- a/fs/autofs4/expire.c +++ b/fs/autofs4/expire.c | |||
@@ -32,7 +32,7 @@ static inline int autofs4_can_expire(struct dentry *dentry, | |||
32 | 32 | ||
33 | if (!do_now) { | 33 | if (!do_now) { |
34 | /* Too young to die */ | 34 | /* Too young to die */ |
35 | if (time_after(ino->last_used + timeout, now)) | 35 | if (!timeout || time_after(ino->last_used + timeout, now)) |
36 | return 0; | 36 | return 0; |
37 | 37 | ||
38 | /* update last_used here :- | 38 | /* update last_used here :- |
@@ -253,7 +253,7 @@ static struct dentry *autofs4_expire_direct(struct super_block *sb, | |||
253 | struct dentry *root = dget(sb->s_root); | 253 | struct dentry *root = dget(sb->s_root); |
254 | int do_now = how & AUTOFS_EXP_IMMEDIATE; | 254 | int do_now = how & AUTOFS_EXP_IMMEDIATE; |
255 | 255 | ||
256 | if (!sbi->exp_timeout || !root) | 256 | if (!root) |
257 | return NULL; | 257 | return NULL; |
258 | 258 | ||
259 | now = jiffies; | 259 | now = jiffies; |
@@ -293,7 +293,7 @@ static struct dentry *autofs4_expire_indirect(struct super_block *sb, | |||
293 | int do_now = how & AUTOFS_EXP_IMMEDIATE; | 293 | int do_now = how & AUTOFS_EXP_IMMEDIATE; |
294 | int exp_leaves = how & AUTOFS_EXP_LEAVES; | 294 | int exp_leaves = how & AUTOFS_EXP_LEAVES; |
295 | 295 | ||
296 | if ( !sbi->exp_timeout || !root ) | 296 | if (!root) |
297 | return NULL; | 297 | return NULL; |
298 | 298 | ||
299 | now = jiffies; | 299 | now = jiffies; |
diff --git a/include/asm-alpha/libata-portmap.h b/include/asm-alpha/libata-portmap.h deleted file mode 100644 index 75484ef0c743..000000000000 --- a/include/asm-alpha/libata-portmap.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/libata-portmap.h> | ||
diff --git a/include/asm-frv/libata-portmap.h b/include/asm-frv/libata-portmap.h deleted file mode 100644 index 75484ef0c743..000000000000 --- a/include/asm-frv/libata-portmap.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/libata-portmap.h> | ||
diff --git a/include/asm-i386/libata-portmap.h b/include/asm-i386/libata-portmap.h deleted file mode 100644 index 75484ef0c743..000000000000 --- a/include/asm-i386/libata-portmap.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/libata-portmap.h> | ||
diff --git a/include/asm-ia64/libata-portmap.h b/include/asm-ia64/libata-portmap.h deleted file mode 100644 index 75484ef0c743..000000000000 --- a/include/asm-ia64/libata-portmap.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/libata-portmap.h> | ||
diff --git a/include/asm-ia64/numa.h b/include/asm-ia64/numa.h index e5a8260593a5..e0a1d173e42d 100644 --- a/include/asm-ia64/numa.h +++ b/include/asm-ia64/numa.h | |||
@@ -64,6 +64,10 @@ extern int paddr_to_nid(unsigned long paddr); | |||
64 | 64 | ||
65 | #define local_nodeid (cpu_to_node_map[smp_processor_id()]) | 65 | #define local_nodeid (cpu_to_node_map[smp_processor_id()]) |
66 | 66 | ||
67 | extern void map_cpu_to_node(int cpu, int nid); | ||
68 | extern void unmap_cpu_from_node(int cpu, int nid); | ||
69 | |||
70 | |||
67 | #else /* !CONFIG_NUMA */ | 71 | #else /* !CONFIG_NUMA */ |
68 | 72 | ||
69 | #define paddr_to_nid(addr) 0 | 73 | #define paddr_to_nid(addr) 0 |
diff --git a/include/asm-powerpc/libata-portmap.h b/include/asm-powerpc/libata-portmap.h deleted file mode 100644 index 75484ef0c743..000000000000 --- a/include/asm-powerpc/libata-portmap.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/libata-portmap.h> | ||
diff --git a/include/asm-sparc/libata-portmap.h b/include/asm-sparc/libata-portmap.h deleted file mode 100644 index 75484ef0c743..000000000000 --- a/include/asm-sparc/libata-portmap.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/libata-portmap.h> | ||
diff --git a/include/asm-sparc64/libata-portmap.h b/include/asm-sparc64/libata-portmap.h deleted file mode 100644 index 75484ef0c743..000000000000 --- a/include/asm-sparc64/libata-portmap.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/libata-portmap.h> | ||
diff --git a/include/asm-x86_64/libata-portmap.h b/include/asm-x86_64/libata-portmap.h deleted file mode 100644 index 75484ef0c743..000000000000 --- a/include/asm-x86_64/libata-portmap.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/libata-portmap.h> | ||
diff --git a/include/linux/libata.h b/include/linux/libata.h index 1ef3d3901b47..d6a3d4b345fc 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -36,7 +36,15 @@ | |||
36 | #include <linux/workqueue.h> | 36 | #include <linux/workqueue.h> |
37 | #include <scsi/scsi_host.h> | 37 | #include <scsi/scsi_host.h> |
38 | 38 | ||
39 | /* | ||
40 | * Define if arch has non-standard setup. This is a _PCI_ standard | ||
41 | * not a legacy or ISA standard. | ||
42 | */ | ||
43 | #ifdef CONFIG_ATA_NONSTANDARD | ||
39 | #include <asm/libata-portmap.h> | 44 | #include <asm/libata-portmap.h> |
45 | #else | ||
46 | #include <asm-generic/libata-portmap.h> | ||
47 | #endif | ||
40 | 48 | ||
41 | /* | 49 | /* |
42 | * compile-time options: to be removed as soon as all the drivers are | 50 | * compile-time options: to be removed as soon as all the drivers are |
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h index 8e39982fc3db..9582e8401669 100644 --- a/include/scsi/libsas.h +++ b/include/scsi/libsas.h | |||
@@ -534,7 +534,7 @@ struct sas_task { | |||
534 | #define SAS_TASK_STATE_DONE 2 | 534 | #define SAS_TASK_STATE_DONE 2 |
535 | #define SAS_TASK_STATE_ABORTED 4 | 535 | #define SAS_TASK_STATE_ABORTED 4 |
536 | 536 | ||
537 | static inline struct sas_task *sas_alloc_task(unsigned long flags) | 537 | static inline struct sas_task *sas_alloc_task(gfp_t flags) |
538 | { | 538 | { |
539 | extern kmem_cache_t *sas_task_cache; | 539 | extern kmem_cache_t *sas_task_cache; |
540 | struct sas_task *task = kmem_cache_alloc(sas_task_cache, flags); | 540 | struct sas_task *task = kmem_cache_alloc(sas_task_cache, flags); |
@@ -570,7 +570,7 @@ struct sas_domain_function_template { | |||
570 | void (*lldd_dev_gone)(struct domain_device *); | 570 | void (*lldd_dev_gone)(struct domain_device *); |
571 | 571 | ||
572 | int (*lldd_execute_task)(struct sas_task *, int num, | 572 | int (*lldd_execute_task)(struct sas_task *, int num, |
573 | unsigned long gfp_flags); | 573 | gfp_t gfp_flags); |
574 | 574 | ||
575 | /* Task Management Functions. Must be called from process context. */ | 575 | /* Task Management Functions. Must be called from process context. */ |
576 | int (*lldd_abort_task)(struct sas_task *); | 576 | int (*lldd_abort_task)(struct sas_task *); |
diff --git a/kernel/module.c b/kernel/module.c index 2a19cd47c046..b7fe6e840963 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -1054,6 +1054,12 @@ static int mod_sysfs_setup(struct module *mod, | |||
1054 | { | 1054 | { |
1055 | int err; | 1055 | int err; |
1056 | 1056 | ||
1057 | if (!module_subsys.kset.subsys) { | ||
1058 | printk(KERN_ERR "%s: module_subsys not initialized\n", | ||
1059 | mod->name); | ||
1060 | err = -EINVAL; | ||
1061 | goto out; | ||
1062 | } | ||
1057 | memset(&mod->mkobj.kobj, 0, sizeof(mod->mkobj.kobj)); | 1063 | memset(&mod->mkobj.kobj, 0, sizeof(mod->mkobj.kobj)); |
1058 | err = kobject_set_name(&mod->mkobj.kobj, "%s", mod->name); | 1064 | err = kobject_set_name(&mod->mkobj.kobj, "%s", mod->name); |
1059 | if (err) | 1065 | if (err) |
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 3b5358a0561f..8a52ba9fe693 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -1845,8 +1845,10 @@ static inline void free_zone_pagesets(int cpu) | |||
1845 | for_each_zone(zone) { | 1845 | for_each_zone(zone) { |
1846 | struct per_cpu_pageset *pset = zone_pcp(zone, cpu); | 1846 | struct per_cpu_pageset *pset = zone_pcp(zone, cpu); |
1847 | 1847 | ||
1848 | /* Free per_cpu_pageset if it is slab allocated */ | ||
1849 | if (pset != &boot_pageset[cpu]) | ||
1850 | kfree(pset); | ||
1848 | zone_pcp(zone, cpu) = NULL; | 1851 | zone_pcp(zone, cpu) = NULL; |
1849 | kfree(pset); | ||
1850 | } | 1852 | } |
1851 | } | 1853 | } |
1852 | 1854 | ||
diff --git a/sound/sparc/amd7930.c b/sound/sparc/amd7930.c index 2bd8e40b8541..be0bd503f013 100644 --- a/sound/sparc/amd7930.c +++ b/sound/sparc/amd7930.c | |||
@@ -755,7 +755,7 @@ static struct snd_pcm_ops snd_amd7930_capture_ops = { | |||
755 | .pointer = snd_amd7930_capture_pointer, | 755 | .pointer = snd_amd7930_capture_pointer, |
756 | }; | 756 | }; |
757 | 757 | ||
758 | static int __init snd_amd7930_pcm(struct snd_amd7930 *amd) | 758 | static int __devinit snd_amd7930_pcm(struct snd_amd7930 *amd) |
759 | { | 759 | { |
760 | struct snd_pcm *pcm; | 760 | struct snd_pcm *pcm; |
761 | int err; | 761 | int err; |
@@ -870,7 +870,7 @@ static int snd_amd7930_put_volume(struct snd_kcontrol *kctl, struct snd_ctl_elem | |||
870 | return change; | 870 | return change; |
871 | } | 871 | } |
872 | 872 | ||
873 | static struct snd_kcontrol_new amd7930_controls[] __initdata = { | 873 | static struct snd_kcontrol_new amd7930_controls[] __devinitdata = { |
874 | { | 874 | { |
875 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, | 875 | .iface = SNDRV_CTL_ELEM_IFACE_MIXER, |
876 | .name = "Monitor Volume", | 876 | .name = "Monitor Volume", |
@@ -900,7 +900,7 @@ static struct snd_kcontrol_new amd7930_controls[] __initdata = { | |||
900 | }, | 900 | }, |
901 | }; | 901 | }; |
902 | 902 | ||
903 | static int __init snd_amd7930_mixer(struct snd_amd7930 *amd) | 903 | static int __devinit snd_amd7930_mixer(struct snd_amd7930 *amd) |
904 | { | 904 | { |
905 | struct snd_card *card; | 905 | struct snd_card *card; |
906 | int idx, err; | 906 | int idx, err; |
@@ -945,11 +945,11 @@ static struct snd_device_ops snd_amd7930_dev_ops = { | |||
945 | .dev_free = snd_amd7930_dev_free, | 945 | .dev_free = snd_amd7930_dev_free, |
946 | }; | 946 | }; |
947 | 947 | ||
948 | static int __init snd_amd7930_create(struct snd_card *card, | 948 | static int __devinit snd_amd7930_create(struct snd_card *card, |
949 | struct resource *rp, | 949 | struct resource *rp, |
950 | unsigned int reg_size, | 950 | unsigned int reg_size, |
951 | int irq, int dev, | 951 | int irq, int dev, |
952 | struct snd_amd7930 **ramd) | 952 | struct snd_amd7930 **ramd) |
953 | { | 953 | { |
954 | unsigned long flags; | 954 | unsigned long flags; |
955 | struct snd_amd7930 *amd; | 955 | struct snd_amd7930 *amd; |
@@ -1013,7 +1013,7 @@ static int __init snd_amd7930_create(struct snd_card *card, | |||
1013 | return 0; | 1013 | return 0; |
1014 | } | 1014 | } |
1015 | 1015 | ||
1016 | static int __init amd7930_attach_common(struct resource *rp, int irq) | 1016 | static int __devinit amd7930_attach_common(struct resource *rp, int irq) |
1017 | { | 1017 | { |
1018 | static int dev_num; | 1018 | static int dev_num; |
1019 | struct snd_card *card; | 1019 | struct snd_card *card; |
@@ -1065,7 +1065,7 @@ out_err: | |||
1065 | return err; | 1065 | return err; |
1066 | } | 1066 | } |
1067 | 1067 | ||
1068 | static int __init amd7930_obio_attach(struct device_node *dp) | 1068 | static int __devinit amd7930_obio_attach(struct device_node *dp) |
1069 | { | 1069 | { |
1070 | struct linux_prom_registers *regs; | 1070 | struct linux_prom_registers *regs; |
1071 | struct linux_prom_irqs *irqp; | 1071 | struct linux_prom_irqs *irqp; |