> On 26 May 2015, at 10:02, Samuel Pitoiset <samuel.pitoiset at gmail.com> 
> wrote:
> 
> 
> 
> On 05/26/2015 12:22 AM, Pierre Moreau wrote:
>> Signed-off-by: Pierre Moreau <pierre.morrow at free.fr>
>> ---
>>  drm/nouveau/nouveau_acpi.c | 10 ++++------
>>  1 file changed, 4 insertions(+), 6 deletions(-)
>> 
>> diff --git a/drm/nouveau/nouveau_acpi.c b/drm/nouveau/nouveau_acpi.c
>> index 36f4a40..073f7d7 100644
>> --- a/drm/nouveau/nouveau_acpi.c
>> +++ b/drm/nouveau/nouveau_acpi.c
>> @@ -88,15 +88,14 @@ static int nouveau_evaluate_optimus_dsm(acpi_handle 
>> handle, int func, int arg, u
>>      for (i = 0; i < 4; i++)
>>              args_buff[i] = (arg >> i * 8) & 0xFF;
>>  -   *result = 0;
>>      obj = acpi_evaluate_dsm_typed(handle, nouveau_op_dsm_muid, 
>> nouveau_op_dsm_rid,
>>                                    func, &argv4, ACPI_TYPE_BUFFER);
>>      if (!obj) {
>>              acpi_handle_info(handle, "failed to evaluate _DSM\n");
>>              return AE_ERROR;
>>      } else {
>> -            if (obj->buffer.length == 4) {
>> -                    *result |= obj->buffer.pointer[0];
>> +            if (!result && obj->buffer.length == 4) {
>> +                    *result  = obj->buffer.pointer[0];
> 
> segfault here if result is NULL! ;)

Good catch!

> 
>>                      *result |= (obj->buffer.pointer[1] << 8);
>>                      *result |= (obj->buffer.pointer[2] << 16);
>>                      *result |= (obj->buffer.pointer[3] << 24);
>> @@ -322,18 +321,17 @@ void nouveau_register_dsm_handler(void)
>>  /* Must be called for Optimus models before the card can be turned off */
>>  void nouveau_switcheroo_optimus_dsm(void)
>>  {
>> -    u32 result = 0;
>>      if (!nouveau_dsm_priv.optimus_detected)
>>              return;
>>      nouveau_evaluate_optimus_dsm(nouveau_dsm_priv.dhandle,
>>                                   NOUVEAU_DSM_OPTIMUS_FLAGS,
>> -                                 0x3, &result);
>> +                                 0x3, NULL);
>>      nouveau_evaluate_optimus_dsm(nouveau_dsm_priv.dhandle,
>>                                   NOUVEAU_DSM_OPTIMUS_CAPS,
>>                                   NOUVEAU_DSM_OPTIMUS_SET_POWERDOWN,
>> -                                 &result);
>> +                                 NULL);
>>    }

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.freedesktop.org/archives/dri-devel/attachments/20150526/e86b377b/attachment-0001.html>

Reply via email to