Merge 06a81c1c7d ("Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux") into android-mainline
Steps on the way to 5.9-rc1 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: Id74224d7f18ddadb68bee87a17093de49331c8be
This commit is contained in:
@@ -516,6 +516,7 @@ at module load time (for a module) with::
|
||||
slave_addrs=<addr1>,<addr2>,...
|
||||
tryacpi=[0|1] trydmi=[0|1]
|
||||
[dbg_probe=1]
|
||||
alerts_broken
|
||||
|
||||
The addresses are normal I2C addresses. The adapter is the string
|
||||
name of the adapter, as shown in /sys/class/i2c-adapter/i2c-<n>/name.
|
||||
@@ -537,6 +538,9 @@ The slave_addrs specifies the IPMI address of the local BMC. This is
|
||||
usually 0x20 and the driver defaults to that, but in case it's not, it
|
||||
can be specified when the driver starts up.
|
||||
|
||||
alerts_broken does not enable SMBus alert for SSIF. Otherwise SMBus
|
||||
alert will be enabled on supported hardware.
|
||||
|
||||
Discovering the IPMI compliant BMC on the SMBus can cause devices on
|
||||
the I2C bus to fail. The SMBus driver writes a "Get Device ID" IPMI
|
||||
message as a block write to the I2C bus and waits for a response.
|
||||
|
||||
@@ -28,10 +28,9 @@
|
||||
* compile time, but to set the physical address only
|
||||
* in the boot process.
|
||||
*
|
||||
* These 'compile-time allocated' memory buffers are
|
||||
* page-sized. Use set_fixmap(idx,phys) to associate
|
||||
* physical memory with fixmap indices.
|
||||
*
|
||||
* Each enum increment in these 'compile-time allocated'
|
||||
* memory buffers is page-sized. Use set_fixmap(idx,phys)
|
||||
* to associate physical memory with a fixmap index.
|
||||
*/
|
||||
enum fixed_addresses {
|
||||
FIX_HOLE,
|
||||
|
||||
@@ -46,7 +46,12 @@ DECLARE_PER_CPU_READ_MOSTLY(int, cpu_number);
|
||||
* Logical CPU mapping.
|
||||
*/
|
||||
extern u64 __cpu_logical_map[NR_CPUS];
|
||||
#define cpu_logical_map(cpu) __cpu_logical_map[cpu]
|
||||
extern u64 cpu_logical_map(int cpu);
|
||||
|
||||
static inline void set_cpu_logical_map(int cpu, u64 hwid)
|
||||
{
|
||||
__cpu_logical_map[cpu] = hwid;
|
||||
}
|
||||
|
||||
struct seq_file;
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ u64 __cacheline_aligned boot_args[4];
|
||||
void __init smp_setup_processor_id(void)
|
||||
{
|
||||
u64 mpidr = read_cpuid_mpidr() & MPIDR_HWID_BITMASK;
|
||||
cpu_logical_map(0) = mpidr;
|
||||
set_cpu_logical_map(0, mpidr);
|
||||
|
||||
/*
|
||||
* clear __my_cpu_offset on boot CPU to avoid hang caused by
|
||||
@@ -276,6 +276,12 @@ arch_initcall(reserve_memblock_reserved_regions);
|
||||
|
||||
u64 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = INVALID_HWID };
|
||||
|
||||
u64 cpu_logical_map(int cpu)
|
||||
{
|
||||
return __cpu_logical_map[cpu];
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(cpu_logical_map);
|
||||
|
||||
void __init __no_sanitize_address setup_arch(char **cmdline_p)
|
||||
{
|
||||
init_mm.start_code = (unsigned long) _text;
|
||||
|
||||
@@ -566,7 +566,7 @@ acpi_map_gic_cpu_interface(struct acpi_madt_generic_interrupt *processor)
|
||||
return;
|
||||
|
||||
/* map the logical cpu id to cpu MPIDR */
|
||||
cpu_logical_map(cpu_count) = hwid;
|
||||
set_cpu_logical_map(cpu_count, hwid);
|
||||
|
||||
cpu_madt_gicc[cpu_count] = *processor;
|
||||
|
||||
@@ -680,7 +680,7 @@ static void __init of_parse_and_init_cpus(void)
|
||||
goto next;
|
||||
|
||||
pr_debug("cpu logical map 0x%llx\n", hwid);
|
||||
cpu_logical_map(cpu_count) = hwid;
|
||||
set_cpu_logical_map(cpu_count, hwid);
|
||||
|
||||
early_map_cpu_to_node(cpu_count, of_node_to_nid(dn));
|
||||
next:
|
||||
@@ -721,7 +721,7 @@ void __init smp_init_cpus(void)
|
||||
for (i = 1; i < nr_cpu_ids; i++) {
|
||||
if (cpu_logical_map(i) != INVALID_HWID) {
|
||||
if (smp_cpu_setup(i))
|
||||
cpu_logical_map(i) = INVALID_HWID;
|
||||
set_cpu_logical_map(i, INVALID_HWID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3080,8 +3080,6 @@ static int __ipmi_bmc_register(struct ipmi_smi *intf,
|
||||
rv = sysfs_create_link(&bmc->pdev.dev.kobj, &intf->si_dev->kobj,
|
||||
intf->my_dev_name);
|
||||
if (rv) {
|
||||
kfree(intf->my_dev_name);
|
||||
intf->my_dev_name = NULL;
|
||||
dev_err(intf->si_dev, "Unable to create symlink to bmc: %d\n",
|
||||
rv);
|
||||
goto out_free_my_dev_name;
|
||||
|
||||
@@ -22,11 +22,6 @@
|
||||
* and drives the real SSIF state machine.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TODO: Figure out how to use SMB alerts. This will require a new
|
||||
* interface into the I2C driver, I believe.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) "ipmi_ssif: " fmt
|
||||
#define dev_fmt(fmt) "ipmi_ssif: " fmt
|
||||
|
||||
|
||||
@@ -232,12 +232,17 @@ static int set_param_str(const char *val, const struct kernel_param *kp)
|
||||
static int get_param_str(char *buffer, const struct kernel_param *kp)
|
||||
{
|
||||
action_fn fn = (action_fn) kp->arg;
|
||||
int rv;
|
||||
int rv, len;
|
||||
|
||||
rv = fn(NULL, buffer);
|
||||
if (rv)
|
||||
return rv;
|
||||
return strlen(buffer);
|
||||
|
||||
len = strlen(buffer);
|
||||
buffer[len++] = '\n';
|
||||
buffer[len] = 0;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user