ALSA: asihpi - fix return type of hpios_locked_mem_alloc()
Subsystems (2)
PATCH 1/1 ALSA: asihpi - fix return type of hpios_locked_mem_alloc()
This function returns zero or -ENOMEM, but because it's type is u16, the -ENOMEM gets changed to 65524. None of the callers care, but lets fix it anyway as a cleanup.
sound/pci/asihpi/hpi_internal.h +1 -1
@@ -42,7 +42,7 @@ On error *pLockedMemHandle marked invalid, non-zero returned.If this function succeeds, then HpiOs_LockedMem_GetVirtAddr() and HpiOs_LockedMem_GetPyhsAddr() will always succed on the returned handle. */ -u16 hpios_locked_mem_alloc (struct consistent_dma_area *p_locked_mem_handle, +int hpios_locked_mem_alloc (struct consistent_dma_area *p_locked_mem_handle,/**< memory handle */ u32 size,/**< Size in bytes to allocate */ struct pci_dev *p_os_reference
sound/pci/asihpi/hpios.c +1 -1
@@ -43,7 +43,7 @@ void hpios_delay_micro_seconds(u32 num_micro_sec)On error, return -ENOMEM, and *pMemArea.size = 0 */ -u16 hpios_locked_mem_alloc (struct consistent_dma_area *p_mem_area,u32 size, +int hpios_locked_mem_alloc (struct consistent_dma_area *p_mem_area,u32 size,struct pci_dev *pdev) {/*?? any benefit in using managed dmam_alloc_coherent? */
Takashi Iwai
AppliedAt Wed, 28 Mar 2012 09:57:02 +0300,
Quoted 6 lines · Dan Carpenter
This function returns zero or
-ENOMEM, but because it's type is u16, the-ENOMEMgets changed to 65524. None of the callers care, but lets fix it anyway as a cleanup.Signed-off-by Dan Carpenter <[email protected]>
Applied it now. Thanks.
Takashi
Quoted 27 lines
sound/pci/asihpi/hpi_internal.h +1
-1@@ -42,7 +42,7 @@ On error *pLockedMemHandle marked invalid, non-zero returned.If this function succeeds, then HpiOs_LockedMem_GetVirtAddr() and HpiOs_LockedMem_GetPyhsAddr() will always succed on the returned handle. */ -u16 hpios_locked_mem_alloc (struct consistent_dma_area *p_locked_mem_handle, +int hpios_locked_mem_alloc (struct consistent_dma_area *p_locked_mem_handle,/**< memory handle */ u32 size,/**< Size in bytes to allocate */ struct pci_dev *p_os_referencesound/pci/asihpi/hpios.c +1
-1@@ -43,7 +43,7 @@ void hpios_delay_micro_seconds(u32 num_micro_sec)On error, return -ENOMEM, and *pMemArea.size = 0 */ -u16 hpios_locked_mem_alloc (struct consistent_dma_area *p_mem_area,u32 size, +int hpios_locked_mem_alloc (struct consistent_dma_area *p_mem_area,u32 size,struct pci_dev *pdev) {/*?? any benefit in using managed dmam_alloc_coherent? */
Quoted 10 lines · Takashi Iwai
At Wed, 28 Mar 2012 09:57:02 +0300,
Quoted 6 lines · Dan Carpenter
This function returns zero or
-ENOMEM, but because it's type is u16, the-ENOMEMgets changed to 65524. None of the callers care, but lets fix it anyway as a cleanup.Signed-off-by Dan Carpenter <[email protected]>Applied it now. Thanks.
Hmm. I guess it is too late to NAK this change?
I'd prefer changing the return value to HPI_ERROR_MEMORY_ALLOC and leaving the function signature alone.
Any chance to make this change?
--
Eliot
At Thu, 29 Mar 2012 10:43:20 +1300,
Quoted 9 lines · Eliot Blennerhassett
Quoted 7 lines · Takashi Iwai
At Wed, 28 Mar 2012 09:57:02 +0300,
Quoted 5 lines · Dan Carpenter
This function returns zero or
-ENOMEM, but because it's type is u16, the-ENOMEMgets changed to 65524. None of the callers care, but lets fix it anyway as a cleanup.
Quoted 5 lines
Quoted 3 lines
Quoted 1 line
Signed-off-by Dan Carpenter <[email protected]>Applied it now. Thanks.
Hmm. I guess it is too late to NAK this change?
Yes, Dan's fix itself is correct, so no big reason to revert.
Quoted 2 lines
I'd prefer changing the return value to
HPI_ERROR_MEMORY_ALLOCand leaving the function signature alone.
It's fine to change to HPI_ERROR_MEMORY_ALLOC. Just write another patch to change it appropriately and submit.
But, if we change in that way, we should think again over the return type of these functions, too. If functions are supposed to return these specific error numbers, they should return rather enum HPI_ERROR_CODES type instead of u16. Otherwise it's misleading and an error like this can happen again.
Or, follow the common style, returning int with 0 or a negative error number.
thanks,
Takashi
I'm obviously in favour of using standard error codes where ever possible. But when I'm writing a change like this, then I do look at the surrounding context because there are places the use custom error codes (SCSI is an example). In this case, I was confused because there aren't any other error codes in this file, and also the comment says that it should return -ENOMEM.
regards,
dan carpenter
PATCH 1/1 ALSA: asihpi - fix return value of hpios_locked_mem_alloc()
In reply to Takashi IwaiFrom: Eliot Blennerhassett <[email protected]>
Make this function consistent with others in this module by returning 1 for error, instead of -ENOMEM
(reverts function signature change from a938fb1e)
--- sound/pci/asihpi/hpi_internal.h | 4 ++-- sound/pci/asihpi/hpios.c | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-)
sound/pci/asihpi/hpi_internal.h +2 -2
@@ -1,7 +1,7 @@/****************************************************************************** AudioScience HPI driver -Copyright (C) 1997-2011 AudioScience Inc. <[email protected]> +Copyright (C) 1997-2012 AudioScience Inc. <[email protected]> This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as
@@ -42,7 +42,7 @@ On error *pLockedMemHandle marked invalid, non-zero returned.If this function succeeds, then HpiOs_LockedMem_GetVirtAddr() and HpiOs_LockedMem_GetPyhsAddr() will always succed on the returned handle. */ -int hpios_locked_mem_alloc (struct consistent_dma_area *p_locked_mem_handle, +u16 hpios_locked_mem_alloc (struct consistent_dma_area *p_locked_mem_handle,/**< memory handle */ u32 size,/**< Size in bytes to allocate */ struct pci_dev *p_os_reference
sound/pci/asihpi/hpios.c +5 -5
@@ -1,7 +1,7 @@/****************************************************************************** AudioScience HPI driver -Copyright (C) 1997-2011 AudioScience Inc. <[email protected]> +Copyright (C) 1997-2012 AudioScience Inc. <[email protected]> This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as
@@ -39,11 +39,11 @@ void hpios_delay_micro_seconds(u32 num_micro_sec) } -/** Allocated an area of locked memory for bus master DMA operations. +/** Allocate an area of locked memory for bus master DMA operations. -On error, return -ENOMEM, and *pMemArea.size = 0 +If allocation fails, return 1, and *pMemArea.size = 0 */ -int hpios_locked_mem_alloc (struct consistent_dma_area *p_mem_area,u32 size, +u16 hpios_locked_mem_alloc (struct consistent_dma_area *p_mem_area,u32 size,struct pci_dev *pdev) {/*?? any benefit in using managed dmam_alloc_coherent? */
@@ -62,7 +62,7 @@ int hpios_locked_mem_alloc(struct consistent_dma_area *p_mem_area, u32 size,HPI_DEBUG_LOG (WARNING ,"failed to allocate %d bytes locked memory\n" , size); p_mem_area->size =0 ; -return -ENOMEM ; +return 1 ; } }
Signature · 1 line
1.7.0.4
Re: [PATCH] ALSA: asihpi - fix return value of hpios_locked_mem_alloc()
At Fri, 30 Mar 2012 09:52:25 +1300,
Quoted 8 lines · [email protected] wrote:
From: Eliot Blennerhassett <[email protected]>
Make this function consistent with others in this module by returning 1 for error, instead of
-ENOMEM
(reverts function signature change froma938fb1e)Signed-off-by Eliot Blennerhassett <[email protected]>
Hm, u16 is not ideal, but OK if it's needed for easier maintenance. Applied now.
thanks,
Takashi
Quoted 67 lines
--- sound/pci/asihpi/hpi_internal.h | 4 ++-- sound/pci/asihpi/hpios.c | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-)sound/pci/asihpi/hpi_internal.h +2
-2@@ -1,7 +1,7 @@/****************************************************************************** AudioScience HPI driver -Copyright (C) 1997-2011 AudioScience Inc. <[email protected]> +Copyright (C) 1997-2012 AudioScience Inc. <[email protected]> This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as @@ -42,7 +42,7 @@ On error *pLockedMemHandle marked invalid, non-zero returned.If this function succeeds, then HpiOs_LockedMem_GetVirtAddr() and HpiOs_LockedMem_GetPyhsAddr() will always succed on the returned handle. */ -int hpios_locked_mem_alloc (struct consistent_dma_area *p_locked_mem_handle, +u16 hpios_locked_mem_alloc (struct consistent_dma_area *p_locked_mem_handle,/**< memory handle */ u32 size,/**< Size in bytes to allocate */ struct pci_dev *p_os_referencesound/pci/asihpi/hpios.c +5
-5@@ -1,7 +1,7 @@/****************************************************************************** AudioScience HPI driver -Copyright (C) 1997-2011 AudioScience Inc. <[email protected]> +Copyright (C) 1997-2012 AudioScience Inc. <[email protected]> This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as @@ -39,11 +39,11 @@ void hpios_delay_micro_seconds(u32 num_micro_sec) } -/** Allocated an area of locked memory for bus master DMA operations. +/** Allocate an area of locked memory for bus master DMA operations. -On error, return -ENOMEM, and *pMemArea.size = 0 +If allocation fails, return 1, and *pMemArea.size = 0 */ -int hpios_locked_mem_alloc (struct consistent_dma_area *p_mem_area,u32 size, +u16 hpios_locked_mem_alloc (struct consistent_dma_area *p_mem_area,u32 size,struct pci_dev *pdev) {/*?? any benefit in using managed dmam_alloc_coherent? */ @@ -62,7 +62,7 @@ int hpios_locked_mem_alloc(struct consistent_dma_area *p_mem_area, u32 size,HPI_DEBUG_LOG (WARNING ,"failed to allocate %d bytes locked memory\n" , size); p_mem_area->size =0 ; -return -ENOMEM ; +return 1 ; } }Signature · 1 line
1.7.0.4