parisc architecture fixes and updates for kernel v5.20-rc1:
One real bugfix to change the io_pgetevents_time64() syscall to use the compat implementation when running in compat mode, otherwise the signed int32 parameters min_nr and nr will be incorrectly handled as unsigned int64 values. Other than that just small cleanups: * hardware database housekeeping and proper /proc/iomem output * add proper function exit code if probe functions fail * drop stale variables (pa_swapper_pg_lock) * drop unneccessary zero-initializations * typo fixes in comments -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCYu07ZwAKCRD3ErUQojoP XxlBAQDqaNvhiTfiyXD14B6DVoW4BK8anI/JFEbzD91oi8zGdAD9FktmLk5BLsY7 iMc4SCr79IM29AUdcbqC6mK2zNJ2uQA= =lshT -----END PGP SIGNATURE----- Merge tag 'for-5.20/parisc-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parisc updates from Helge Deller: "One real bugfix to change the io_pgetevents_time64() syscall to use the compat implementation when running in compat mode, otherwise the signed int32 parameters min_nr and nr will be incorrectly handled as unsigned int64 values. Other than that just small cleanups: - hardware database housekeeping and proper /proc/iomem output - add proper function exit code if probe functions fail - drop stale variables (pa_swapper_pg_lock) - drop unneccessary zero-initializations - typo fixes in comments" * tag 'for-5.20/parisc-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: Input: gscps2 - check return value of ioremap() in gscps2_probe() parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode parisc: Drop zero variable initialisations in mm/init.c parisc: Do not initialise statics to 0 parisc: Check the return value of ioremap() in lba_driver_probe() parisc: Drop pa_swapper_pg_lock spinlock parisc: Fix comment typo in fault.c parisc: Fix device names in /proc/iomem parisc: Clean up names in hardware database
This commit is contained in:
commit
8db4a0291b
@ -50,9 +50,6 @@ void flush_instruction_cache_local(void); /* flushes local code-cache only */
|
|||||||
*/
|
*/
|
||||||
DEFINE_SPINLOCK(pa_tlb_flush_lock);
|
DEFINE_SPINLOCK(pa_tlb_flush_lock);
|
||||||
|
|
||||||
/* Swapper page setup lock. */
|
|
||||||
DEFINE_SPINLOCK(pa_swapper_pg_lock);
|
|
||||||
|
|
||||||
#if defined(CONFIG_64BIT) && defined(CONFIG_SMP)
|
#if defined(CONFIG_64BIT) && defined(CONFIG_SMP)
|
||||||
int pa_serialize_tlb_flushes __ro_after_init;
|
int pa_serialize_tlb_flushes __ro_after_init;
|
||||||
#endif
|
#endif
|
||||||
|
@ -520,7 +520,6 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path)
|
|||||||
dev->id.hversion_rev = iodc_data[1] & 0x0f;
|
dev->id.hversion_rev = iodc_data[1] & 0x0f;
|
||||||
dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) |
|
dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) |
|
||||||
(iodc_data[5] << 8) | iodc_data[6];
|
(iodc_data[5] << 8) | iodc_data[6];
|
||||||
dev->hpa.name = parisc_pathname(dev);
|
|
||||||
dev->hpa.start = hpa;
|
dev->hpa.start = hpa;
|
||||||
/* This is awkward. The STI spec says that gfx devices may occupy
|
/* This is awkward. The STI spec says that gfx devices may occupy
|
||||||
* 32MB or 64MB. Unfortunately, we don't know how to tell whether
|
* 32MB or 64MB. Unfortunately, we don't know how to tell whether
|
||||||
@ -534,10 +533,10 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path)
|
|||||||
dev->hpa.end = hpa + 0xfff;
|
dev->hpa.end = hpa + 0xfff;
|
||||||
}
|
}
|
||||||
dev->hpa.flags = IORESOURCE_MEM;
|
dev->hpa.flags = IORESOURCE_MEM;
|
||||||
name = parisc_hardware_description(&dev->id);
|
dev->hpa.name = dev->name;
|
||||||
if (name) {
|
name = parisc_hardware_description(&dev->id) ? : "unknown";
|
||||||
strlcpy(dev->name, name, sizeof(dev->name));
|
snprintf(dev->name, sizeof(dev->name), "%s [%s]",
|
||||||
}
|
name, parisc_pathname(dev));
|
||||||
|
|
||||||
/* Silently fail things like mouse ports which are subsumed within
|
/* Silently fail things like mouse ports which are subsumed within
|
||||||
* the keyboard controller
|
* the keyboard controller
|
||||||
|
@ -23,9 +23,6 @@
|
|||||||
* HP PARISC Hardware Database
|
* HP PARISC Hardware Database
|
||||||
* Access to this database is only possible during bootup
|
* Access to this database is only possible during bootup
|
||||||
* so don't reference this table after starting the init process
|
* so don't reference this table after starting the init process
|
||||||
*
|
|
||||||
* NOTE: Product names which are listed here and ends with a '?'
|
|
||||||
* are guessed. If you know the correct name, please let us know.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static struct hp_hardware hp_hardware_list[] __initdata = {
|
static struct hp_hardware hp_hardware_list[] __initdata = {
|
||||||
@ -212,7 +209,7 @@ static struct hp_hardware hp_hardware_list[] __initdata = {
|
|||||||
{HPHW_NPROC,0x5DD,0x4,0x81,"Duet W2"},
|
{HPHW_NPROC,0x5DD,0x4,0x81,"Duet W2"},
|
||||||
{HPHW_NPROC,0x5DE,0x4,0x81,"Piccolo W+"},
|
{HPHW_NPROC,0x5DE,0x4,0x81,"Piccolo W+"},
|
||||||
{HPHW_NPROC,0x5DF,0x4,0x81,"Cantata W2"},
|
{HPHW_NPROC,0x5DF,0x4,0x81,"Cantata W2"},
|
||||||
{HPHW_NPROC,0x5DF,0x0,0x00,"Marcato W+ (rp5470)?"},
|
{HPHW_NPROC,0x5DF,0x0,0x00,"Marcato W+ (rp5470)"},
|
||||||
{HPHW_NPROC,0x5E0,0x4,0x91,"Cantata DC- W2"},
|
{HPHW_NPROC,0x5E0,0x4,0x91,"Cantata DC- W2"},
|
||||||
{HPHW_NPROC,0x5E1,0x4,0x91,"Crescendo DC- W2"},
|
{HPHW_NPROC,0x5E1,0x4,0x91,"Crescendo DC- W2"},
|
||||||
{HPHW_NPROC,0x5E2,0x4,0x91,"Crescendo 650 W2"},
|
{HPHW_NPROC,0x5E2,0x4,0x91,"Crescendo 650 W2"},
|
||||||
@ -266,11 +263,11 @@ static struct hp_hardware hp_hardware_list[] __initdata = {
|
|||||||
{HPHW_NPROC,0x888,0x4,0x91,"Storm Peak Fast DC-"},
|
{HPHW_NPROC,0x888,0x4,0x91,"Storm Peak Fast DC-"},
|
||||||
{HPHW_NPROC,0x889,0x4,0x91,"Storm Peak Fast"},
|
{HPHW_NPROC,0x889,0x4,0x91,"Storm Peak Fast"},
|
||||||
{HPHW_NPROC,0x88A,0x4,0x91,"Crestone Peak Slow"},
|
{HPHW_NPROC,0x88A,0x4,0x91,"Crestone Peak Slow"},
|
||||||
{HPHW_NPROC,0x88B,0x4,0x91,"Crestone Peak Fast?"},
|
{HPHW_NPROC,0x88B,0x4,0x91,"Crestone Peak Fast"},
|
||||||
{HPHW_NPROC,0x88C,0x4,0x91,"Orca Mako+"},
|
{HPHW_NPROC,0x88C,0x4,0x91,"Orca Mako+"},
|
||||||
{HPHW_NPROC,0x88D,0x4,0x91,"Rainier/Medel Mako+ Slow"},
|
{HPHW_NPROC,0x88D,0x4,0x91,"Rainier/Medel Mako+ Slow"},
|
||||||
{HPHW_NPROC,0x88E,0x4,0x91,"Rainier/Medel Mako+ Fast"},
|
{HPHW_NPROC,0x88E,0x4,0x91,"Rainier/Medel Mako+ Fast"},
|
||||||
{HPHW_NPROC,0x892,0x4,0x91,"Mt. Hamilton Slow Mako+?"},
|
{HPHW_NPROC,0x892,0x4,0x91,"Mt. Hamilton Slow Mako+"},
|
||||||
{HPHW_NPROC,0x894,0x4,0x91,"Mt. Hamilton Fast Mako+"},
|
{HPHW_NPROC,0x894,0x4,0x91,"Mt. Hamilton Fast Mako+"},
|
||||||
{HPHW_NPROC,0x895,0x4,0x91,"Storm Peak Slow Mako+"},
|
{HPHW_NPROC,0x895,0x4,0x91,"Storm Peak Slow Mako+"},
|
||||||
{HPHW_NPROC,0x896,0x4,0x91,"Storm Peak Fast Mako+"},
|
{HPHW_NPROC,0x896,0x4,0x91,"Storm Peak Fast Mako+"},
|
||||||
@ -1198,7 +1195,7 @@ static struct hp_hardware hp_hardware_list[] __initdata = {
|
|||||||
{HPHW_FIO, 0x004, 0x00340, 0x0, "BARCO CX4500 VME Grphx Cnsl"},
|
{HPHW_FIO, 0x004, 0x00340, 0x0, "BARCO CX4500 VME Grphx Cnsl"},
|
||||||
{HPHW_FIO, 0x004, 0x00360, 0x0, "Hughes TOG VME FDDI"},
|
{HPHW_FIO, 0x004, 0x00360, 0x0, "Hughes TOG VME FDDI"},
|
||||||
{HPHW_FIO, 0x076, 0x000AD, 0x0, "Crestone Peak Core RS-232"},
|
{HPHW_FIO, 0x076, 0x000AD, 0x0, "Crestone Peak Core RS-232"},
|
||||||
{HPHW_FIO, 0x077, 0x000AD, 0x0, "Crestone Peak Fast? Core RS-232"},
|
{HPHW_FIO, 0x077, 0x000AD, 0x0, "Crestone Peak Fast Core RS-232"},
|
||||||
{HPHW_IOA, 0x185, 0x0000B, 0x00, "Java BC Summit Port"},
|
{HPHW_IOA, 0x185, 0x0000B, 0x00, "Java BC Summit Port"},
|
||||||
{HPHW_IOA, 0x1FF, 0x0000B, 0x00, "Hitachi Ghostview Summit Port"},
|
{HPHW_IOA, 0x1FF, 0x0000B, 0x00, "Hitachi Ghostview Summit Port"},
|
||||||
{HPHW_IOA, 0x580, 0x0000B, 0x10, "U2-IOA BC Runway Port"},
|
{HPHW_IOA, 0x580, 0x0000B, 0x10, "U2-IOA BC Runway Port"},
|
||||||
|
@ -36,8 +36,8 @@
|
|||||||
#include <asm/tlbflush.h> /* for purge_tlb_*() macros */
|
#include <asm/tlbflush.h> /* for purge_tlb_*() macros */
|
||||||
|
|
||||||
static struct proc_dir_entry * proc_gsc_root __read_mostly = NULL;
|
static struct proc_dir_entry * proc_gsc_root __read_mostly = NULL;
|
||||||
static unsigned long pcxl_used_bytes __read_mostly = 0;
|
static unsigned long pcxl_used_bytes __read_mostly;
|
||||||
static unsigned long pcxl_used_pages __read_mostly = 0;
|
static unsigned long pcxl_used_pages __read_mostly;
|
||||||
|
|
||||||
extern unsigned long pcxl_dma_start; /* Start of pcxl dma mapping area */
|
extern unsigned long pcxl_dma_start; /* Start of pcxl dma mapping area */
|
||||||
static DEFINE_SPINLOCK(pcxl_res_lock);
|
static DEFINE_SPINLOCK(pcxl_res_lock);
|
||||||
|
@ -413,7 +413,7 @@
|
|||||||
412 32 utimensat_time64 sys_utimensat sys_utimensat
|
412 32 utimensat_time64 sys_utimensat sys_utimensat
|
||||||
413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64
|
413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64
|
||||||
414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64
|
414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64
|
||||||
416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents
|
416 32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64
|
||||||
417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64
|
417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64
|
||||||
418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend
|
418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend
|
||||||
419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive
|
419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive
|
||||||
|
@ -38,7 +38,7 @@ int show_unhandled_signals = 1;
|
|||||||
/*
|
/*
|
||||||
* parisc_acctyp(unsigned int inst) --
|
* parisc_acctyp(unsigned int inst) --
|
||||||
* Given a PA-RISC memory access instruction, determine if the
|
* Given a PA-RISC memory access instruction, determine if the
|
||||||
* the instruction would perform a memory read or memory write
|
* instruction would perform a memory read or memory write
|
||||||
* operation.
|
* operation.
|
||||||
*
|
*
|
||||||
* This function assumes that the given instruction is a memory access
|
* This function assumes that the given instruction is a memory access
|
||||||
|
@ -722,7 +722,7 @@ static unsigned long space_id[SID_ARRAY_SIZE] = { 1 }; /* disallow space 0 */
|
|||||||
static unsigned long dirty_space_id[SID_ARRAY_SIZE];
|
static unsigned long dirty_space_id[SID_ARRAY_SIZE];
|
||||||
static unsigned long space_id_index;
|
static unsigned long space_id_index;
|
||||||
static unsigned long free_space_ids = NR_SPACE_IDS - 1;
|
static unsigned long free_space_ids = NR_SPACE_IDS - 1;
|
||||||
static unsigned long dirty_space_ids = 0;
|
static unsigned long dirty_space_ids;
|
||||||
|
|
||||||
static DEFINE_SPINLOCK(sid_lock);
|
static DEFINE_SPINLOCK(sid_lock);
|
||||||
|
|
||||||
|
@ -350,6 +350,10 @@ static int __init gscps2_probe(struct parisc_device *dev)
|
|||||||
ps2port->port = serio;
|
ps2port->port = serio;
|
||||||
ps2port->padev = dev;
|
ps2port->padev = dev;
|
||||||
ps2port->addr = ioremap(hpa, GSC_STATUS + 4);
|
ps2port->addr = ioremap(hpa, GSC_STATUS + 4);
|
||||||
|
if (!ps2port->addr) {
|
||||||
|
ret = -ENOMEM;
|
||||||
|
goto fail_nomem;
|
||||||
|
}
|
||||||
spin_lock_init(&ps2port->lock);
|
spin_lock_init(&ps2port->lock);
|
||||||
|
|
||||||
gscps2_reset(ps2port);
|
gscps2_reset(ps2port);
|
||||||
|
@ -1476,9 +1476,13 @@ lba_driver_probe(struct parisc_device *dev)
|
|||||||
u32 func_class;
|
u32 func_class;
|
||||||
void *tmp_obj;
|
void *tmp_obj;
|
||||||
char *version;
|
char *version;
|
||||||
void __iomem *addr = ioremap(dev->hpa.start, 4096);
|
void __iomem *addr;
|
||||||
int max;
|
int max;
|
||||||
|
|
||||||
|
addr = ioremap(dev->hpa.start, 4096);
|
||||||
|
if (addr == NULL)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
/* Read HW Rev First */
|
/* Read HW Rev First */
|
||||||
func_class = READ_REG32(addr + LBA_FCLASS);
|
func_class = READ_REG32(addr + LBA_FCLASS);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user