mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-06 05:13:18 +00:00
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);
|
||||
|
||||
/* Swapper page setup lock. */
|
||||
DEFINE_SPINLOCK(pa_swapper_pg_lock);
|
||||
|
||||
#if defined(CONFIG_64BIT) && defined(CONFIG_SMP)
|
||||
int pa_serialize_tlb_flushes __ro_after_init;
|
||||
#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.sversion = ((iodc_data[4] & 0x0f) << 16) |
|
||||
(iodc_data[5] << 8) | iodc_data[6];
|
||||
dev->hpa.name = parisc_pathname(dev);
|
||||
dev->hpa.start = hpa;
|
||||
/* This is awkward. The STI spec says that gfx devices may occupy
|
||||
* 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.flags = IORESOURCE_MEM;
|
||||
name = parisc_hardware_description(&dev->id);
|
||||
if (name) {
|
||||
strlcpy(dev->name, name, sizeof(dev->name));
|
||||
}
|
||||
dev->hpa.name = dev->name;
|
||||
name = parisc_hardware_description(&dev->id) ? : "unknown";
|
||||
snprintf(dev->name, sizeof(dev->name), "%s [%s]",
|
||||
name, parisc_pathname(dev));
|
||||
|
||||
/* Silently fail things like mouse ports which are subsumed within
|
||||
* the keyboard controller
|
||||
|
@ -23,9 +23,6 @@
|
||||
* HP PARISC Hardware Database
|
||||
* Access to this database is only possible during bootup
|
||||
* 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 = {
|
||||
@ -212,7 +209,7 @@ static struct hp_hardware hp_hardware_list[] __initdata = {
|
||||
{HPHW_NPROC,0x5DD,0x4,0x81,"Duet W2"},
|
||||
{HPHW_NPROC,0x5DE,0x4,0x81,"Piccolo W+"},
|
||||
{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,0x5E1,0x4,0x91,"Crescendo DC- 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,0x889,0x4,0x91,"Storm Peak Fast"},
|
||||
{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,0x88D,0x4,0x91,"Rainier/Medel Mako+ Slow"},
|
||||
{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,0x895,0x4,0x91,"Storm Peak Slow 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, 0x00360, 0x0, "Hughes TOG VME FDDI"},
|
||||
{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, 0x1FF, 0x0000B, 0x00, "Hitachi Ghostview Summit Port"},
|
||||
{HPHW_IOA, 0x580, 0x0000B, 0x10, "U2-IOA BC Runway Port"},
|
||||
|
@ -36,8 +36,8 @@
|
||||
#include <asm/tlbflush.h> /* for purge_tlb_*() macros */
|
||||
|
||||
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_pages __read_mostly = 0;
|
||||
static unsigned long pcxl_used_bytes __read_mostly;
|
||||
static unsigned long pcxl_used_pages __read_mostly;
|
||||
|
||||
extern unsigned long pcxl_dma_start; /* Start of pcxl dma mapping area */
|
||||
static DEFINE_SPINLOCK(pcxl_res_lock);
|
||||
|
@ -413,7 +413,7 @@
|
||||
412 32 utimensat_time64 sys_utimensat sys_utimensat
|
||||
413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_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
|
||||
418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend
|
||||
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) --
|
||||
* 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.
|
||||
*
|
||||
* 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 space_id_index;
|
||||
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);
|
||||
|
||||
|
@ -350,6 +350,10 @@ static int __init gscps2_probe(struct parisc_device *dev)
|
||||
ps2port->port = serio;
|
||||
ps2port->padev = dev;
|
||||
ps2port->addr = ioremap(hpa, GSC_STATUS + 4);
|
||||
if (!ps2port->addr) {
|
||||
ret = -ENOMEM;
|
||||
goto fail_nomem;
|
||||
}
|
||||
spin_lock_init(&ps2port->lock);
|
||||
|
||||
gscps2_reset(ps2port);
|
||||
|
@ -1476,9 +1476,13 @@ lba_driver_probe(struct parisc_device *dev)
|
||||
u32 func_class;
|
||||
void *tmp_obj;
|
||||
char *version;
|
||||
void __iomem *addr = ioremap(dev->hpa.start, 4096);
|
||||
void __iomem *addr;
|
||||
int max;
|
||||
|
||||
addr = ioremap(dev->hpa.start, 4096);
|
||||
if (addr == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
/* Read HW Rev First */
|
||||
func_class = READ_REG32(addr + LBA_FCLASS);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user