ALSA: hda: Abort capability probe on invalid capability
diff mbox

Message ID 1508349576-29947-1-git-send-email-rakesh.a.ughreja@intel.com
State New
Headers show

Commit Message

Ughreja, Rakesh A Oct. 18, 2017, 5:59 p.m. UTC
From: Rakesh Ughreja <rakesh.a.ughreja@intel.com>

When an invalid capability is discovered, stop traversing
the capability link list further.

Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
---
 sound/hda/hdac_controller.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Takashi Iwai Oct. 18, 2017, 10:19 a.m. UTC | #1
On Wed, 18 Oct 2017 19:59:36 +0200,
Ughreja, Rakesh A wrote:
> 
> From: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
> 
> When an invalid capability is discovered, stop traversing
> the capability link list further.

Could you give more background, especially *why* we change that?
It's almost clear what the patch does by looking at the change, but
it's not clear why it is needed.


thanks,

Takashi


> Signed-off-by: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
> ---
>  sound/hda/hdac_controller.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c
> index 978dc18..4fa0cc0 100644
> --- a/sound/hda/hdac_controller.c
> +++ b/sound/hda/hdac_controller.c
> @@ -314,7 +314,8 @@ int snd_hdac_bus_parse_capabilities(struct hdac_bus *bus)
>  			break;
>  
>  		default:
> -			dev_dbg(bus->dev, "Unknown capability %d\n", cur_cap);
> +			cur_cap = 0;
> +			dev_err(bus->dev, "Unknown capability %d\n", cur_cap);
>  			break;
>  		}
>  
> -- 
> 2.7.4
>
Ughreja, Rakesh A Oct. 18, 2017, 10:29 a.m. UTC | #2
>-----Original Message-----
>From: Takashi Iwai [mailto:tiwai@suse.de]
>Sent: Wednesday, October 18, 2017 3:50 PM
>To: Ughreja, Rakesh A <rakesh.a.ughreja@intel.com>
>Cc: alsa-devel@alsa-project.org; Koul, Vinod <vinod.koul@intel.com>
>Subject: Re: [PATCH] ALSA: hda: Abort capability probe on invalid capability
>
>On Wed, 18 Oct 2017 19:59:36 +0200,
>Ughreja, Rakesh A wrote:
>>
>> From: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
>>
>> When an invalid capability is discovered, stop traversing
>> the capability link list further.
>
>Could you give more background, especially *why* we change that?
>It's almost clear what the patch does by looking at the change, but
>it's not clear why it is needed.

Is the following description in patch okay for you ?

Due to bugs in BIOS it's possible that the HDA capability link list is 
not constructed properly. This may lead to driver going into unknown
state. So whenever driver discovers unknown HDA capability, 
log it as error and stop traversing the link list further.

Regards,
Rakesh
Takashi Iwai Oct. 18, 2017, 10:45 a.m. UTC | #3
On Wed, 18 Oct 2017 12:29:14 +0200,
Ughreja, Rakesh A wrote:
> 
> 
> 
> >-----Original Message-----
> >From: Takashi Iwai [mailto:tiwai@suse.de]
> >Sent: Wednesday, October 18, 2017 3:50 PM
> >To: Ughreja, Rakesh A <rakesh.a.ughreja@intel.com>
> >Cc: alsa-devel@alsa-project.org; Koul, Vinod <vinod.koul@intel.com>
> >Subject: Re: [PATCH] ALSA: hda: Abort capability probe on invalid capability
> >
> >On Wed, 18 Oct 2017 19:59:36 +0200,
> >Ughreja, Rakesh A wrote:
> >>
> >> From: Rakesh Ughreja <rakesh.a.ughreja@intel.com>
> >>
> >> When an invalid capability is discovered, stop traversing
> >> the capability link list further.
> >
> >Could you give more background, especially *why* we change that?
> >It's almost clear what the patch does by looking at the change, but
> >it's not clear why it is needed.
> 
> Is the following description in patch okay for you ?
> 
> Due to bugs in BIOS it's possible that the HDA capability link list is 
> not constructed properly. This may lead to driver going into unknown
> state. So whenever driver discovers unknown HDA capability, 
> log it as error and stop traversing the link list further.

Yes, looks good.


thanks,

Takashi

Patch
diff mbox

diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c
index 978dc18..4fa0cc0 100644
--- a/sound/hda/hdac_controller.c
+++ b/sound/hda/hdac_controller.c
@@ -314,7 +314,8 @@  int snd_hdac_bus_parse_capabilities(struct hdac_bus *bus)
 			break;
 
 		default:
-			dev_dbg(bus->dev, "Unknown capability %d\n", cur_cap);
+			cur_cap = 0;
+			dev_err(bus->dev, "Unknown capability %d\n", cur_cap);
 			break;
 		}