| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0 |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * arch/sh/kernel/machvec.c |
|---|
| 3 | 4 | * |
|---|
| .. | .. |
|---|
| 5 | 6 | * |
|---|
| 6 | 7 | * Copyright (C) 1999 Niibe Yutaka |
|---|
| 7 | 8 | * Copyright (C) 2002 - 2007 Paul Mundt |
|---|
| 8 | | - * |
|---|
| 9 | | - * This file is subject to the terms and conditions of the GNU General Public |
|---|
| 10 | | - * License. See the file "COPYING" in the main directory of this archive |
|---|
| 11 | | - * for more details. |
|---|
| 12 | 9 | */ |
|---|
| 13 | 10 | #include <linux/init.h> |
|---|
| 14 | 11 | #include <linux/string.h> |
|---|
| .. | .. |
|---|
| 18 | 15 | #include <asm/setup.h> |
|---|
| 19 | 16 | #include <asm/io.h> |
|---|
| 20 | 17 | #include <asm/irq.h> |
|---|
| 18 | +#include <asm/processor.h> |
|---|
| 21 | 19 | |
|---|
| 22 | 20 | #define MV_NAME_SIZE 32 |
|---|
| 23 | 21 | |
|---|
| 24 | 22 | #define for_each_mv(mv) \ |
|---|
| 25 | | - for ((mv) = (struct sh_machine_vector *)&__machvec_start; \ |
|---|
| 26 | | - (mv) && (unsigned long)(mv) < (unsigned long)&__machvec_end; \ |
|---|
| 23 | + for ((mv) = (struct sh_machine_vector *)__machvec_start; \ |
|---|
| 24 | + (mv) && (unsigned long)(mv) < (unsigned long)__machvec_end; \ |
|---|
| 27 | 25 | (mv)++) |
|---|
| 28 | 26 | |
|---|
| 29 | 27 | static struct sh_machine_vector * __init get_mv_byname(const char *name) |
|---|
| .. | .. |
|---|
| 67 | 65 | |
|---|
| 68 | 66 | mvp = get_mv_byname(mv_name); |
|---|
| 69 | 67 | if (unlikely(!mvp)) { |
|---|
| 70 | | - printk("Available vectors:\n\n\t'%s', ", sh_mv.mv_name); |
|---|
| 68 | + pr_info("Available vectors:\n\n\t'%s', ", sh_mv.mv_name); |
|---|
| 71 | 69 | for_each_mv(mvp) |
|---|
| 72 | | - printk("'%s', ", mvp->mv_name); |
|---|
| 73 | | - printk("\n\n"); |
|---|
| 70 | + pr_cont("'%s', ", mvp->mv_name); |
|---|
| 71 | + pr_cont("\n\n"); |
|---|
| 74 | 72 | panic("Failed to select machvec '%s' -- halting.\n", |
|---|
| 75 | 73 | mv_name); |
|---|
| 76 | 74 | } else |
|---|
| .. | .. |
|---|
| 89 | 87 | if (!machvec_selected) { |
|---|
| 90 | 88 | unsigned long machvec_size; |
|---|
| 91 | 89 | |
|---|
| 92 | | - machvec_size = ((unsigned long)&__machvec_end - |
|---|
| 93 | | - (unsigned long)&__machvec_start); |
|---|
| 90 | + machvec_size = ((unsigned long)__machvec_end - |
|---|
| 91 | + (unsigned long)__machvec_start); |
|---|
| 94 | 92 | |
|---|
| 95 | 93 | /* |
|---|
| 96 | 94 | * Sanity check for machvec section alignment. Ensure |
|---|
| .. | .. |
|---|
| 104 | 102 | * vector (usually the only one) from .machvec.init. |
|---|
| 105 | 103 | */ |
|---|
| 106 | 104 | if (machvec_size >= sizeof(struct sh_machine_vector)) |
|---|
| 107 | | - sh_mv = *(struct sh_machine_vector *)&__machvec_start; |
|---|
| 105 | + sh_mv = *(struct sh_machine_vector *)__machvec_start; |
|---|
| 108 | 106 | } |
|---|
| 109 | 107 | |
|---|
| 110 | | - printk(KERN_NOTICE "Booting machvec: %s\n", get_system_type()); |
|---|
| 108 | + pr_notice("Booting machvec: %s\n", get_system_type()); |
|---|
| 111 | 109 | |
|---|
| 112 | 110 | /* |
|---|
| 113 | 111 | * Manually walk the vec, fill in anything that the board hasn't yet |
|---|