Commit bb609316 authored by Linus Torvalds's avatar Linus Torvalds

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

Pull parisc fixes from Helge Deller:
 "Fix two section mismatches, convert to read_persistent_clock64(), add
  further documentation regarding the HPMC crash handler and make
  bzImage the default build target"

* 'parisc-4.17-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: Fix section mismatches
  parisc: drivers.c: Fix section mismatches
  parisc: time: Convert read_persistent_clock() to read_persistent_clock64()
  parisc: Document rules regarding checksum of HPMC handler
  parisc: Make bzImage default build target
parents c15f6d8d 8d73b180
...@@ -123,6 +123,9 @@ INSTALL_TARGETS = zinstall install ...@@ -123,6 +123,9 @@ INSTALL_TARGETS = zinstall install
PHONY += bzImage $(BOOT_TARGETS) $(INSTALL_TARGETS) PHONY += bzImage $(BOOT_TARGETS) $(INSTALL_TARGETS)
# Default kernel to build
all: bzImage
zImage: vmlinuz zImage: vmlinuz
Image: vmlinux Image: vmlinux
......
...@@ -448,7 +448,8 @@ static int match_by_id(struct device * dev, void * data) ...@@ -448,7 +448,8 @@ static int match_by_id(struct device * dev, void * data)
* Checks all the children of @parent for a matching @id. If none * Checks all the children of @parent for a matching @id. If none
* found, it allocates a new device and returns it. * found, it allocates a new device and returns it.
*/ */
static struct parisc_device * alloc_tree_node(struct device *parent, char id) static struct parisc_device * __init alloc_tree_node(
struct device *parent, char id)
{ {
struct match_id_data d = { struct match_id_data d = {
.id = id, .id = id,
...@@ -825,8 +826,8 @@ static void walk_lower_bus(struct parisc_device *dev) ...@@ -825,8 +826,8 @@ static void walk_lower_bus(struct parisc_device *dev)
* devices which are not physically connected (such as extra serial & * devices which are not physically connected (such as extra serial &
* keyboard ports). This problem is not yet solved. * keyboard ports). This problem is not yet solved.
*/ */
static void walk_native_bus(unsigned long io_io_low, unsigned long io_io_high, static void __init walk_native_bus(unsigned long io_io_low,
struct device *parent) unsigned long io_io_high, struct device *parent)
{ {
int i, devices_found = 0; int i, devices_found = 0;
unsigned long hpa = io_io_low; unsigned long hpa = io_io_low;
......
...@@ -174,7 +174,7 @@ void pcibios_set_master(struct pci_dev *dev) ...@@ -174,7 +174,7 @@ void pcibios_set_master(struct pci_dev *dev)
* pcibios_init_bridge() initializes cache line and default latency * pcibios_init_bridge() initializes cache line and default latency
* for pci controllers and pci-pci bridges * for pci controllers and pci-pci bridges
*/ */
void __init pcibios_init_bridge(struct pci_dev *dev) void __ref pcibios_init_bridge(struct pci_dev *dev)
{ {
unsigned short bridge_ctl, bridge_ctl_new; unsigned short bridge_ctl, bridge_ctl_new;
......
...@@ -205,7 +205,7 @@ static int __init rtc_init(void) ...@@ -205,7 +205,7 @@ static int __init rtc_init(void)
device_initcall(rtc_init); device_initcall(rtc_init);
#endif #endif
void read_persistent_clock(struct timespec *ts) void read_persistent_clock64(struct timespec64 *ts)
{ {
static struct pdc_tod tod_data; static struct pdc_tod tod_data;
if (pdc_tod_read(&tod_data) == 0) { if (pdc_tod_read(&tod_data) == 0) {
......
...@@ -837,6 +837,17 @@ void __init initialize_ivt(const void *iva) ...@@ -837,6 +837,17 @@ void __init initialize_ivt(const void *iva)
if (pdc_instr(&instr) == PDC_OK) if (pdc_instr(&instr) == PDC_OK)
ivap[0] = instr; ivap[0] = instr;
/*
* Rules for the checksum of the HPMC handler:
* 1. The IVA does not point to PDC/PDH space (ie: the OS has installed
* its own IVA).
* 2. The word at IVA + 32 is nonzero.
* 3. If Length (IVA + 60) is not zero, then Length (IVA + 60) and
* Address (IVA + 56) are word-aligned.
* 4. The checksum of the 8 words starting at IVA + 32 plus the sum of
* the Length/4 words starting at Address is zero.
*/
/* Compute Checksum for HPMC handler */ /* Compute Checksum for HPMC handler */
length = os_hpmc_size; length = os_hpmc_size;
ivap[7] = length; ivap[7] = length;
......
...@@ -516,7 +516,7 @@ static void __init map_pages(unsigned long start_vaddr, ...@@ -516,7 +516,7 @@ static void __init map_pages(unsigned long start_vaddr,
} }
} }
void free_initmem(void) void __ref free_initmem(void)
{ {
unsigned long init_begin = (unsigned long)__init_begin; unsigned long init_begin = (unsigned long)__init_begin;
unsigned long init_end = (unsigned long)__init_end; unsigned long init_end = (unsigned long)__init_end;
......
...@@ -1263,7 +1263,7 @@ static struct parisc_driver ccio_driver __refdata = { ...@@ -1263,7 +1263,7 @@ static struct parisc_driver ccio_driver __refdata = {
* I/O Page Directory, the resource map, and initalizing the * I/O Page Directory, the resource map, and initalizing the
* U2/Uturn chip into virtual mode. * U2/Uturn chip into virtual mode.
*/ */
static void static void __init
ccio_ioc_init(struct ioc *ioc) ccio_ioc_init(struct ioc *ioc)
{ {
int i; int i;
......
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