Commit cc863973 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux

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
parents aa3ae6de 4edb3869
...@@ -6088,7 +6088,15 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6.git ...@@ -6088,7 +6088,15 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git
S: Maintained S: Maintained
F: arch/parisc/ F: arch/parisc/
F: Documentation/parisc/
F: drivers/parisc/ F: drivers/parisc/
F: drivers/char/agp/parisc-agp.c
F: drivers/input/serio/gscps2.c
F: drivers/parport/parport_gsc.*
F: drivers/tty/serial/8250/8250_gsc.c
F: drivers/video/sti*
F: drivers/video/console/sti*
F: drivers/video/logo/logo_parisc*
PC87360 HARDWARE MONITORING DRIVER PC87360 HARDWARE MONITORING DRIVER
M: Jim Cromie <jim.cromie@gmail.com> M: Jim Cromie <jim.cromie@gmail.com>
......
...@@ -66,7 +66,7 @@ KBUILD_CFLAGS_KERNEL += -mlong-calls ...@@ -66,7 +66,7 @@ KBUILD_CFLAGS_KERNEL += -mlong-calls
endif endif
# select which processor to optimise for # select which processor to optimise for
cflags-$(CONFIG_PA7100) += -march=1.1 -mschedule=7100 cflags-$(CONFIG_PA7000) += -march=1.1 -mschedule=7100
cflags-$(CONFIG_PA7200) += -march=1.1 -mschedule=7200 cflags-$(CONFIG_PA7200) += -march=1.1 -mschedule=7200
cflags-$(CONFIG_PA7100LC) += -march=1.1 -mschedule=7100LC cflags-$(CONFIG_PA7100LC) += -march=1.1 -mschedule=7100LC
cflags-$(CONFIG_PA7300LC) += -march=1.1 -mschedule=7300 cflags-$(CONFIG_PA7300LC) += -march=1.1 -mschedule=7300
......
...@@ -39,17 +39,14 @@ extern unsigned char pfnnid_map[PFNNID_MAP_MAX]; ...@@ -39,17 +39,14 @@ extern unsigned char pfnnid_map[PFNNID_MAP_MAX];
static inline int pfn_to_nid(unsigned long pfn) static inline int pfn_to_nid(unsigned long pfn)
{ {
unsigned int i; unsigned int i;
unsigned char r;
if (unlikely(pfn_is_io(pfn))) if (unlikely(pfn_is_io(pfn)))
return 0; return 0;
i = pfn >> PFNNID_SHIFT; i = pfn >> PFNNID_SHIFT;
BUG_ON(i >= ARRAY_SIZE(pfnnid_map)); BUG_ON(i >= ARRAY_SIZE(pfnnid_map));
r = pfnnid_map[i];
BUG_ON(r == 0xff);
return (int)r; return (int)pfnnid_map[i];
} }
static inline int pfn_valid(int pfn) static inline int pfn_valid(int pfn)
......
...@@ -394,7 +394,7 @@ EXPORT_SYMBOL(print_pci_hwpath); ...@@ -394,7 +394,7 @@ EXPORT_SYMBOL(print_pci_hwpath);
static void setup_bus_id(struct parisc_device *padev) static void setup_bus_id(struct parisc_device *padev)
{ {
struct hardware_path path; struct hardware_path path;
char name[20]; char name[28];
char *output = name; char *output = name;
int i; int i;
......
...@@ -69,7 +69,8 @@ void __init setup_cmdline(char **cmdline_p) ...@@ -69,7 +69,8 @@ void __init setup_cmdline(char **cmdline_p)
/* called from hpux boot loader */ /* called from hpux boot loader */
boot_command_line[0] = '\0'; boot_command_line[0] = '\0';
} else { } else {
strcpy(boot_command_line, (char *)__va(boot_args[1])); strlcpy(boot_command_line, (char *)__va(boot_args[1]),
COMMAND_LINE_SIZE);
#ifdef CONFIG_BLK_DEV_INITRD #ifdef CONFIG_BLK_DEV_INITRD
if (boot_args[2] != 0) /* did palo pass us a ramdisk? */ if (boot_args[2] != 0) /* did palo pass us a ramdisk? */
......
...@@ -668,7 +668,7 @@ lba_fixup_bus(struct pci_bus *bus) ...@@ -668,7 +668,7 @@ lba_fixup_bus(struct pci_bus *bus)
BUG(); BUG();
} }
if (ldev->hba.elmmio_space.start) { if (ldev->hba.elmmio_space.flags) {
err = request_resource(&iomem_resource, err = request_resource(&iomem_resource,
&(ldev->hba.elmmio_space)); &(ldev->hba.elmmio_space));
if (err < 0) { if (err < 0) {
...@@ -993,7 +993,7 @@ lba_pat_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev) ...@@ -993,7 +993,7 @@ lba_pat_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev)
case PAT_LMMIO: case PAT_LMMIO:
/* used to fix up pre-initialized MEM BARs */ /* used to fix up pre-initialized MEM BARs */
if (!lba_dev->hba.lmmio_space.start) { if (!lba_dev->hba.lmmio_space.flags) {
sprintf(lba_dev->hba.lmmio_name, sprintf(lba_dev->hba.lmmio_name,
"PCI%02x LMMIO", "PCI%02x LMMIO",
(int)lba_dev->hba.bus_num.start); (int)lba_dev->hba.bus_num.start);
...@@ -1001,7 +1001,7 @@ lba_pat_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev) ...@@ -1001,7 +1001,7 @@ lba_pat_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev)
io->start; io->start;
r = &lba_dev->hba.lmmio_space; r = &lba_dev->hba.lmmio_space;
r->name = lba_dev->hba.lmmio_name; r->name = lba_dev->hba.lmmio_name;
} else if (!lba_dev->hba.elmmio_space.start) { } else if (!lba_dev->hba.elmmio_space.flags) {
sprintf(lba_dev->hba.elmmio_name, sprintf(lba_dev->hba.elmmio_name,
"PCI%02x ELMMIO", "PCI%02x ELMMIO",
(int)lba_dev->hba.bus_num.start); (int)lba_dev->hba.bus_num.start);
...@@ -1096,6 +1096,7 @@ lba_legacy_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev) ...@@ -1096,6 +1096,7 @@ lba_legacy_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev)
r->name = "LBA PCI Busses"; r->name = "LBA PCI Busses";
r->start = lba_num & 0xff; r->start = lba_num & 0xff;
r->end = (lba_num>>8) & 0xff; r->end = (lba_num>>8) & 0xff;
r->flags = IORESOURCE_BUS;
/* Set up local PCI Bus resources - we don't need them for /* Set up local PCI Bus resources - we don't need them for
** Legacy boxes but it's nice to see in /proc/iomem. ** Legacy boxes but it's nice to see in /proc/iomem.
...@@ -1494,7 +1495,7 @@ lba_driver_probe(struct parisc_device *dev) ...@@ -1494,7 +1495,7 @@ lba_driver_probe(struct parisc_device *dev)
pci_add_resource_offset(&resources, &lba_dev->hba.io_space, pci_add_resource_offset(&resources, &lba_dev->hba.io_space,
HBA_PORT_BASE(lba_dev->hba.hba_num)); HBA_PORT_BASE(lba_dev->hba.hba_num));
if (lba_dev->hba.elmmio_space.start) if (lba_dev->hba.elmmio_space.flags)
pci_add_resource_offset(&resources, &lba_dev->hba.elmmio_space, pci_add_resource_offset(&resources, &lba_dev->hba.elmmio_space,
lba_dev->hba.lmmio_space_offset); lba_dev->hba.lmmio_space_offset);
if (lba_dev->hba.lmmio_space.flags) if (lba_dev->hba.lmmio_space.flags)
......
...@@ -71,7 +71,7 @@ config PARPORT_PC_FIFO ...@@ -71,7 +71,7 @@ config PARPORT_PC_FIFO
config PARPORT_PC_SUPERIO config PARPORT_PC_SUPERIO
bool "SuperIO chipset support" bool "SuperIO chipset support"
depends on PARPORT_PC depends on PARPORT_PC && !PARISC
help help
Saying Y here enables some probes for Super-IO chipsets in order to Saying Y here enables some probes for Super-IO chipsets in order to
find out things like base addresses, IRQ lines and DMA channels. It find out things like base addresses, IRQ lines and DMA channels. It
......
...@@ -234,7 +234,7 @@ static int parport_PS2_supported(struct parport *pb) ...@@ -234,7 +234,7 @@ static int parport_PS2_supported(struct parport *pb)
struct parport *parport_gsc_probe_port(unsigned long base, struct parport *parport_gsc_probe_port(unsigned long base,
unsigned long base_hi, int irq, unsigned long base_hi, int irq,
int dma, struct pci_dev *dev) int dma, struct parisc_device *padev)
{ {
struct parport_gsc_private *priv; struct parport_gsc_private *priv;
struct parport_operations *ops; struct parport_operations *ops;
...@@ -258,7 +258,6 @@ struct parport *parport_gsc_probe_port(unsigned long base, ...@@ -258,7 +258,6 @@ struct parport *parport_gsc_probe_port(unsigned long base,
priv->ctr_writable = 0xff; priv->ctr_writable = 0xff;
priv->dma_buf = 0; priv->dma_buf = 0;
priv->dma_handle = 0; priv->dma_handle = 0;
priv->dev = dev;
p->base = base; p->base = base;
p->base_hi = base_hi; p->base_hi = base_hi;
p->irq = irq; p->irq = irq;
...@@ -282,6 +281,7 @@ struct parport *parport_gsc_probe_port(unsigned long base, ...@@ -282,6 +281,7 @@ struct parport *parport_gsc_probe_port(unsigned long base,
return NULL; return NULL;
} }
p->dev = &padev->dev;
p->base_hi = base_hi; p->base_hi = base_hi;
p->modes = tmp.modes; p->modes = tmp.modes;
p->size = (p->modes & PARPORT_MODE_EPP)?8:3; p->size = (p->modes & PARPORT_MODE_EPP)?8:3;
...@@ -373,7 +373,7 @@ static int parport_init_chip(struct parisc_device *dev) ...@@ -373,7 +373,7 @@ static int parport_init_chip(struct parisc_device *dev)
} }
p = parport_gsc_probe_port(port, 0, dev->irq, p = parport_gsc_probe_port(port, 0, dev->irq,
/* PARPORT_IRQ_NONE */ PARPORT_DMA_NONE, NULL); /* PARPORT_IRQ_NONE */ PARPORT_DMA_NONE, dev);
if (p) if (p)
parport_count++; parport_count++;
dev_set_drvdata(&dev->dev, p); dev_set_drvdata(&dev->dev, p);
......
...@@ -217,6 +217,6 @@ extern void parport_gsc_dec_use_count(void); ...@@ -217,6 +217,6 @@ extern void parport_gsc_dec_use_count(void);
extern struct parport *parport_gsc_probe_port(unsigned long base, extern struct parport *parport_gsc_probe_port(unsigned long base,
unsigned long base_hi, unsigned long base_hi,
int irq, int dma, int irq, int dma,
struct pci_dev *dev); struct parisc_device *padev);
#endif /* __DRIVERS_PARPORT_PARPORT_GSC_H */ #endif /* __DRIVERS_PARPORT_PARPORT_GSC_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment