lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6d0adc02-bcd8-2217-c145-d609528fbe77@huawei.com>
Date:   Tue, 5 May 2020 10:08:19 +0800
From:   Xiongfeng Wang <wangxiongfeng2@...wei.com>
To:     James Morse <james.morse@....com>, Christoph Hellwig <hch@....de>
CC:     <linux-arm-kernel@...ts.infradead.org>,
        <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] firmware: arm_sdei: remove unused interfaces

Hi James,

On 2020/5/5 1:14, James Morse wrote:
> Hi Christoph,
> 
> (CC: +Xiongfeng)
> 
> Thanks for the reminder - I was just searching for who was using this.

Thanks for CC me. We do have a driver that are using it.

> 
> On 04/05/2020 17:42, Christoph Hellwig wrote:
>> The export symbols to register/unregister and enable/disable events
>> aren't ever used outside of arm_sdei.c, so mark them static.
> 
> Xiongfeng, you have drivers using this, could they be posted upstream. Or can we stop
> exporting these?

It's the SDEI Wathchdog which is used for hardlockup detection. But I wasn't
able to push it upstream because we have Pseudo-NMI in mainline.

> 
> 
> (they were originally added for the GHES RAS thing, but by the time it was all merged
> upstream, it wasn't possible to build it as a module)

The SDEI Watchdog driver also can't be built as a module. We still need to
modify the origin kernel. So I think this patch doesn't affect me. Thanks for CC me.

Thanks,
Xiongfeng

> 
> Thanks,
> 
> James
> 
> 
>> diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm_sdei.c
>> index 334c8be0c11fb..bdd6461647d74 100644
>> --- a/drivers/firmware/arm_sdei.c
>> +++ b/drivers/firmware/arm_sdei.c
>> @@ -400,7 +400,7 @@ static void _local_event_enable(void *data)
>>  	sdei_cross_call_return(arg, err);
>>  }
>>  
>> -int sdei_event_enable(u32 event_num)
>> +static int sdei_event_enable(u32 event_num)
>>  {
>>  	int err = -EINVAL;
>>  	struct sdei_event *event;
>> @@ -429,7 +429,6 @@ int sdei_event_enable(u32 event_num)
>>  
>>  	return err;
>>  }
>> -EXPORT_SYMBOL(sdei_event_enable);
>>  
>>  static int sdei_api_event_disable(u32 event_num)
>>  {
>> @@ -447,7 +446,7 @@ static void _ipi_event_disable(void *data)
>>  	sdei_cross_call_return(arg, err);
>>  }
>>  
>> -int sdei_event_disable(u32 event_num)
>> +static int sdei_event_disable(u32 event_num)
>>  {
>>  	int err = -EINVAL;
>>  	struct sdei_event *event;
>> @@ -471,7 +470,6 @@ int sdei_event_disable(u32 event_num)
>>  
>>  	return err;
>>  }
>> -EXPORT_SYMBOL(sdei_event_disable);
>>  
>>  static int sdei_api_event_unregister(u32 event_num)
>>  {
>> @@ -502,7 +500,7 @@ static int _sdei_event_unregister(struct sdei_event *event)
>>  	return sdei_do_cross_call(_local_event_unregister, event);
>>  }
>>  
>> -int sdei_event_unregister(u32 event_num)
>> +static int sdei_event_unregister(u32 event_num)
>>  {
>>  	int err;
>>  	struct sdei_event *event;
>> @@ -533,7 +531,6 @@ int sdei_event_unregister(u32 event_num)
>>  
>>  	return err;
>>  }
>> -EXPORT_SYMBOL(sdei_event_unregister);
>>  
>>  /*
>>   * unregister events, but don't destroy them as they are re-registered by
>> @@ -603,7 +600,8 @@ static int _sdei_event_register(struct sdei_event *event)
>>  	return err;
>>  }
>>  
>> -int sdei_event_register(u32 event_num, sdei_event_callback *cb, void *arg)
>> +static int sdei_event_register(u32 event_num, sdei_event_callback *cb,
>> +		void *arg)
>>  {
>>  	int err;
>>  	struct sdei_event *event;
>> @@ -643,7 +641,6 @@ int sdei_event_register(u32 event_num, sdei_event_callback *cb, void *arg)
>>  
>>  	return err;
>>  }
>> -EXPORT_SYMBOL(sdei_event_register);
>>  
>>  static int sdei_reregister_event_llocked(struct sdei_event *event)
>>  {
>> diff --git a/include/linux/arm_sdei.h b/include/linux/arm_sdei.h
>> index 0a241c5c911d8..5f9fb1d95d515 100644
>> --- a/include/linux/arm_sdei.h
>> +++ b/include/linux/arm_sdei.h
>> @@ -22,21 +22,6 @@
>>   */
>>  typedef int (sdei_event_callback)(u32 event, struct pt_regs *regs, void *arg);
>>  
>> -/*
>> - * Register your callback to claim an event. The event must be described
>> - * by firmware.
>> - */
>> -int sdei_event_register(u32 event_num, sdei_event_callback *cb, void *arg);
>> -
>> -/*
>> - * Calls to sdei_event_unregister() may return EINPROGRESS. Keep calling
>> - * it until it succeeds.
>> - */
>> -int sdei_event_unregister(u32 event_num);
>> -
>> -int sdei_event_enable(u32 event_num);
>> -int sdei_event_disable(u32 event_num);
>> -
>>  /* GHES register/unregister helpers */
>>  int sdei_register_ghes(struct ghes *ghes, sdei_event_callback *normal_cb,
>>  		       sdei_event_callback *critical_cb);
>>
> 
> 
> .
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ