Pull parisc fixes from Helge Deller: "This patcheset includes fixes for: - the PCI/LBA which brings back the stifb graphics framebuffer console - possible memory overflows in parisc kernel init code - parport support on older GSC machines - avoids that users by mistake enable PARPORT_PC_SUPERIO on parisc - MAINTAINERS file list updates for parisc." * 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: parport0: fix this legacy no-device port driver! parport_pc: disable PARPORT_PC_SUPERIO on parisc architecture parisc/PCI: lba: fix: convert to pci_create_root_bus() for correct root bus resources (v2) parisc/PCI: Set type for LBA bus_num resource MAINTAINERS: update parisc architecture file list parisc: kernel: using strlcpy() instead of strcpy() parisc: rename "CONFIG_PA7100" to "CONFIG_PA7000" parisc: fix kernel BUG at arch/parisc/include/asm/mmzone.h:50 parisc: memory overflow, 'name' length is too short for using
Unified · Split
| @@ -6088,7 +6088,15 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6.git · 6087 unmodified lines | ||
| 6088 | 6088 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git |
| 6089 | 6089 | S: Maintained |
| 6090 | 6090 | F: arch/parisc/ |
| 6091 | +F: Documentation/parisc/ | |
| 6091 | 6092 | F: drivers/parisc/ |
| 6093 | +F: drivers/char/agp/parisc-agp.c | |
| 6094 | +F: drivers/input/serio/gscps2.c | |
| 6095 | +F: drivers/parport/parport_gsc.* | |
| 6096 | +F: drivers/tty/serial/8250/8250_gsc.c | |
| 6097 | +F: drivers/video/sti* | |
| 6098 | +F: drivers/video/console/sti* | |
| 6099 | +F: drivers/video/logo/logo_parisc* | |
| 6092 | 6100 | |
| 6093 | 6101 | PC87360 HARDWARE MONITORING DRIVER |
| 6094 | 6102 | M: Jim Cromie <jim.cromie@gmail.com> |
| @@ -66,7 +66,7 @@ KBUILD_CFLAGS_KERNEL += -mlong-calls · 65 unmodified lines | ||
| 66 | 66 | endif |
| 67 | 67 | |
| 68 | 68 | # select which processor to optimise for |
| 69 | −cflags-$(CONFIG_PA7100) += -march=1.1 -mschedule=7100 | |
| 69 | +cflags-$(CONFIG_PA7000) += -march=1.1 -mschedule=7100 | |
| 70 | 70 | cflags-$(CONFIG_PA7200) += -march=1.1 -mschedule=7200 |
| 71 | 71 | cflags-$(CONFIG_PA7100LC) += -march=1.1 -mschedule=7100LC |
| 72 | 72 | cflags-$(CONFIG_PA7300LC) += -march=1.1 -mschedule=7300 |
| @@ -39,17 +39,14 @@ extern unsigned char pfnnid_map[PFNNID_MAP_MAX]; · 38 unmodified lines | ||
| 39 | 39 | static inline int pfn_to_nid(unsigned long pfn) |
| 40 | 40 | { |
| 41 | 41 | unsigned int i; |
| 42 | − unsigned char r; | |
| 43 | 42 | |
| 44 | 43 | if (unlikely(pfn_is_io(pfn))) |
| 45 | 44 | return 0; |
| 46 | 45 | |
| 47 | 46 | i = pfn >> PFNNID_SHIFT; |
| 48 | 47 | BUG_ON(i >= ARRAY_SIZE(pfnnid_map)); |
| 49 | − r = pfnnid_map[i]; | |
| 50 | − BUG_ON(r == 0xff); | |
| 51 | 48 | |
| 52 | − return (int)r; | |
| 49 | + return (int)pfnnid_map[i]; | |
| 53 | 50 | } |
| 54 | 51 | |
| 55 | 52 | static inline int pfn_valid(int pfn) |
| @@ -394,7 +394,7 @@ EXPORT_SYMBOL(print_pci_hwpath); · 393 unmodified lines | ||
| 394 | 394 | static void setup_bus_id(struct parisc_device *padev) |
| 395 | 395 | { |
| 396 | 396 | struct hardware_path path; |
| 397 | − char name[20]; | |
| 397 | + char name[28]; | |
| 398 | 398 | char *output = name; |
| 399 | 399 | int i; |
| 400 | 400 | |
| @@ -69,7 +69,8 @@ void __init setup_cmdline(char **cmdline_p) · 68 unmodified lines | ||
| 69 | 69 | /* called from hpux boot loader */ |
| 70 | 70 | boot_command_line[0] = '\0'; |
| 71 | 71 | } else { |
| 72 | − strcpy(boot_command_line, (char *)__va(boot_args[1])); | |
| 72 | + strlcpy(boot_command_line, (char *)__va(boot_args[1]), | |
| 73 | + COMMAND_LINE_SIZE); | |
| 73 | 74 | |
| 74 | 75 | #ifdef CONFIG_BLK_DEV_INITRD |
| 75 | 76 | if (boot_args[2] != 0) /* did palo pass us a ramdisk? */ |
| @@ -668,7 +668,7 @@ lba_fixup_bus(struct pci_bus *bus) · 667 unmodified lines | ||
| 668 | 668 | BUG(); |
| 669 | 669 | } |
| 670 | 670 | |
| 671 | − if (ldev->hba.elmmio_space.start) { | |
| 671 | + if (ldev->hba.elmmio_space.flags) { | |
| 672 | 672 | err = request_resource(&iomem_resource, |
| 673 | 673 | &(ldev->hba.elmmio_space)); |
| 674 | 674 | if (err < 0) { |
| @@ -993,7 +993,7 @@ lba_pat_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev) · 318 unmodified lines | ||
| 993 | 993 | |
| 994 | 994 | case PAT_LMMIO: |
| 995 | 995 | /* used to fix up pre-initialized MEM BARs */ |
| 996 | − if (!lba_dev->hba.lmmio_space.start) { | |
| 996 | + if (!lba_dev->hba.lmmio_space.flags) { | |
| 997 | 997 | sprintf(lba_dev->hba.lmmio_name, |
| 998 | 998 | "PCI%02x LMMIO", |
| 999 | 999 | (int)lba_dev->hba.bus_num.start); |
| @@ -1001,7 +1001,7 @@ lba_pat_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev) · 1 unmodified line | ||
| 1001 | 1001 | io->start; |
| 1002 | 1002 | r = &lba_dev->hba.lmmio_space; |
| 1003 | 1003 | r->name = lba_dev->hba.lmmio_name; |
| 1004 | − } else if (!lba_dev->hba.elmmio_space.start) { | |
| 1004 | + } else if (!lba_dev->hba.elmmio_space.flags) { | |
| 1005 | 1005 | sprintf(lba_dev->hba.elmmio_name, |
| 1006 | 1006 | "PCI%02x ELMMIO", |
| 1007 | 1007 | (int)lba_dev->hba.bus_num.start); |
| @@ -1096,6 +1096,7 @@ lba_legacy_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev) · 88 unmodified lines | ||
| 1096 | 1096 | r->name = "LBA PCI Busses"; |
| 1097 | 1097 | r->start = lba_num & 0xff; |
| 1098 | 1098 | r->end = (lba_num>>8) & 0xff; |
| 1099 | + r->flags = IORESOURCE_BUS; | |
| 1099 | 1100 | |
| 1100 | 1101 | /* Set up local PCI Bus resources - we don't need them for |
| 1101 | 1102 | ** Legacy boxes but it's nice to see in /proc/iomem. |
| @@ -1494,7 +1495,7 @@ lba_driver_probe(struct parisc_device *dev) · 392 unmodified lines | ||
| 1494 | 1495 | |
| 1495 | 1496 | pci_add_resource_offset(&resources, &lba_dev->hba.io_space, |
| 1496 | 1497 | HBA_PORT_BASE(lba_dev->hba.hba_num)); |
| 1497 | − if (lba_dev->hba.elmmio_space.start) | |
| 1498 | + if (lba_dev->hba.elmmio_space.flags) | |
| 1498 | 1499 | pci_add_resource_offset(&resources, &lba_dev->hba.elmmio_space, |
| 1499 | 1500 | lba_dev->hba.lmmio_space_offset); |
| 1500 | 1501 | if (lba_dev->hba.lmmio_space.flags) |
| @@ -71,7 +71,7 @@ config PARPORT_PC_FIFO · 70 unmodified lines | ||
| 71 | 71 | |
| 72 | 72 | config PARPORT_PC_SUPERIO |
| 73 | 73 | bool "SuperIO chipset support" |
| 74 | − depends on PARPORT_PC | |
| 74 | + depends on PARPORT_PC && !PARISC | |
| 75 | 75 | help |
| 76 | 76 | Saying Y here enables some probes for Super-IO chipsets in order to |
| 77 | 77 | find out things like base addresses, IRQ lines and DMA channels. It |
| @@ -234,7 +234,7 @@ static int parport_PS2_supported(struct parport *pb) · 233 unmodified lines | ||
| 234 | 234 | |
| 235 | 235 | struct parport *parport_gsc_probe_port(unsigned long base, |
| 236 | 236 | unsigned long base_hi, int irq, |
| 237 | − int dma, struct pci_dev *dev) | |
| 237 | + int dma, struct parisc_device *padev) | |
| 238 | 238 | { |
| 239 | 239 | struct parport_gsc_private *priv; |
| 240 | 240 | struct parport_operations *ops; |
| @@ -258,7 +258,6 @@ struct parport *parport_gsc_probe_port(unsigned long base, · 17 unmodified lines | ||
| 258 | 258 | priv->ctr_writable = 0xff; |
| 259 | 259 | priv->dma_buf = 0; |
| 260 | 260 | priv->dma_handle = 0; |
| 261 | − priv->dev = dev; | |
| 262 | 261 | p->base = base; |
| 263 | 262 | p->base_hi = base_hi; |
| 264 | 263 | p->irq = irq; |
| @@ -282,6 +281,7 @@ struct parport *parport_gsc_probe_port(unsigned long base, · 17 unmodified lines | ||
| 282 | 281 | return NULL; |
| 283 | 282 | } |
| 284 | 283 | |
| 284 | + p->dev = &padev->dev; | |
| 285 | 285 | p->base_hi = base_hi; |
| 286 | 286 | p->modes = tmp.modes; |
| 287 | 287 | p->size = (p->modes & PARPORT_MODE_EPP)?8:3; |
| @@ -373,7 +373,7 @@ static int parport_init_chip(struct parisc_device *dev) · 85 unmodified lines | ||
| 373 | 373 | } |
| 374 | 374 | |
| 375 | 375 | p = parport_gsc_probe_port(port, 0, dev->irq, |
| 376 | − /* PARPORT_IRQ_NONE */ PARPORT_DMA_NONE, NULL); | |
| 376 | + /* PARPORT_IRQ_NONE */ PARPORT_DMA_NONE, dev); | |
| 377 | 377 | if (p) |
| 378 | 378 | parport_count++; |
| 379 | 379 | dev_set_drvdata(&dev->dev, p); |
| @@ -217,6 +217,6 @@ extern void parport_gsc_dec_use_count(void); · 216 unmodified lines | ||
| 217 | 217 | extern struct parport *parport_gsc_probe_port(unsigned long base, |
| 218 | 218 | unsigned long base_hi, |
| 219 | 219 | int irq, int dma, |
| 220 | − struct pci_dev *dev); | |
| 220 | + struct parisc_device *padev); | |
| 221 | 221 | |
| 222 | 222 | #endif /* __DRIVERS_PARPORT_PARPORT_GSC_H */ |