Merge branch 'parisc-4.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux
Pull parisc updates from Helge Deller: "Major changes include: - Full support of the firmware Page Deallocation Table with MADV_HWPOISON and MADV_SOFT_OFFLINE. A kernel thread scans regularily for new bad memory pages. - Full support for self-extracting kernel. - Added UBSAN support. - Lots of section mismatch fixes across all parisc drivers. - Added examples for %pF and %pS usage in printk-formats.txt" * 'parisc-4.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: (28 commits) printk-formats.txt: Add examples for %pF and %pS usage parisc: Fix up devices below a PCI-PCI MegaRAID controller bridge parisc/core: Fix section mismatches parisc/ipmi_si_intf: Fix section mismatches on parisc platform parisc/input/hilkbd: Fix section mismatches parisc/net/lasi_82596: Fix section mismatches parisc/serio: Fix section mismatches in gscps2 and hp_sdc drivers parisc: Fix section mismatches in parisc core drivers parisc/parport_gsc: Fix section mismatches parisc/scsi/lasi700: Fix section mismatches parisc/scsi/zalon: Fix section mismatches parisc/8250_gsc: Fix section mismatches parisc/mux: Fix section mismatches parisc/sticore: Fix section mismatches parisc/harmony: Fix section mismatches parisc: Wire up support for self-extracting kernel parisc: Make existing core files reuseable for bootloader parisc: Add core code for self-extracting kernel parisc: Enable UBSAN support parisc/random: Add machine specific randomness ...
This commit is contained in:
@@ -63,6 +63,9 @@ static inline void switch_mm(struct mm_struct *prev,
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
if (prev == next)
|
||||
return;
|
||||
|
||||
local_irq_save(flags);
|
||||
switch_mm_irqs_off(prev, next, tsk);
|
||||
local_irq_restore(flags);
|
||||
|
@@ -116,11 +116,15 @@ extern int npmem_ranges;
|
||||
/* This governs the relationship between virtual and physical addresses.
|
||||
* If you alter it, make sure to take care of our various fixed mapping
|
||||
* segments in fixmap.h */
|
||||
#if defined(BOOTLOADER)
|
||||
#define __PAGE_OFFSET (0) /* bootloader uses physical addresses */
|
||||
#else
|
||||
#ifdef CONFIG_64BIT
|
||||
#define __PAGE_OFFSET (0x40000000) /* 1GB */
|
||||
#else
|
||||
#define __PAGE_OFFSET (0x10000000) /* 256MB */
|
||||
#endif
|
||||
#endif /* BOOTLOADER */
|
||||
|
||||
#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
|
||||
|
||||
|
@@ -5,6 +5,8 @@
|
||||
|
||||
#if !defined(__ASSEMBLY__)
|
||||
|
||||
extern int parisc_narrow_firmware;
|
||||
|
||||
extern int pdc_type;
|
||||
extern unsigned long parisc_cell_num; /* cell number the CPU runs on (PAT) */
|
||||
extern unsigned long parisc_cell_loc; /* cell location of CPU (PAT) */
|
||||
|
@@ -223,6 +223,18 @@ struct pdc_pat_mem_retinfo { /* PDC_PAT_MEM/PDC_PAT_MEM_PD_INFO (return info) */
|
||||
unsigned long clear_time; /* last PDT clear time (since Jan 1970) */
|
||||
};
|
||||
|
||||
struct pdc_pat_mem_cell_pdt_retinfo { /* PDC_PAT_MEM/PDC_PAT_MEM_CELL_INFO */
|
||||
u64 reserved:32;
|
||||
u64 cs:1; /* clear status: cleared since the last call? */
|
||||
u64 current_pdt_entries:15;
|
||||
u64 ic:1; /* interleaving had to be changed ? */
|
||||
u64 max_pdt_entries:15;
|
||||
unsigned long good_mem;
|
||||
unsigned long first_dbe_loc; /* first location of double bit error */
|
||||
unsigned long clear_time; /* last PDT clear time (since Jan 1970) */
|
||||
};
|
||||
|
||||
|
||||
struct pdc_pat_mem_read_pd_retinfo { /* PDC_PAT_MEM/PDC_PAT_MEM_PD_READ */
|
||||
unsigned long actual_count_bytes;
|
||||
unsigned long pdt_entries;
|
||||
@@ -325,6 +337,8 @@ extern int pdc_pat_io_pci_cfg_read(unsigned long pci_addr, int pci_size, u32 *va
|
||||
extern int pdc_pat_io_pci_cfg_write(unsigned long pci_addr, int pci_size, u32 val);
|
||||
|
||||
extern int pdc_pat_mem_pdt_info(struct pdc_pat_mem_retinfo *rinfo);
|
||||
extern int pdc_pat_mem_pdt_cell_info(struct pdc_pat_mem_cell_pdt_retinfo *rinfo,
|
||||
unsigned long cell);
|
||||
extern int pdc_pat_mem_read_cell_pdt(struct pdc_pat_mem_read_pd_retinfo *pret,
|
||||
unsigned long *pdt_entries_ptr, unsigned long max_entries);
|
||||
extern int pdc_pat_mem_read_pd_pdt(struct pdc_pat_mem_read_pd_retinfo *pret,
|
||||
|
Reference in New Issue
Block a user