On Wednesday 10 July 2013 04:57 PM, Felipe Balbi wrote:
> On Wed, Jul 10, 2013 at 04:29:22PM +0530, Kishon Vijay Abraham I wrote:
>> commit 09fc7d (usb: musb: fix incorrect usage of resource pointer)
>> assumes musb core will always have only 2 resources. But for OMAP
>> platforms there can be 3 resources (2 irq resource and 1 iomem
>> resource). Fixed it here.
>>
>> Signed-off-by: Kishon Vijay Abraham I <kis...@ti.com>
>> ---
>> Changes from v1:
>> *) Removed redundant initialization of *i*
>>
>>  drivers/usb/musb/omap2430.c |   18 ++++++++----------
>>  1 file changed, 8 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
>> index 5b6113a..5bbef78 100644
>> --- a/drivers/usb/musb/omap2430.c
>> +++ b/drivers/usb/musb/omap2430.c
>> @@ -481,7 +481,7 @@ static u64 omap2430_dmamask = DMA_BIT_MASK(32);
>>  
>>  static int omap2430_probe(struct platform_device *pdev)
>>  {
>> -    struct resource                 musb_resources[2];
>> +    struct resource                 musb_resources[3];
>>      struct musb_hdrc_platform_data  *pdata = pdev->dev.platform_data;
>>      struct omap_musb_board_data     *data;
>>      struct platform_device          *musb;
>> @@ -489,6 +489,7 @@ static int omap2430_probe(struct platform_device *pdev)
>>      struct device_node              *np = pdev->dev.of_node;
>>      struct musb_hdrc_config         *config;
>>      int                             ret = -ENOMEM;
>> +    int                             i;
>>  
>>      glue = devm_kzalloc(&pdev->dev, sizeof(*glue), GFP_KERNEL);
>>      if (!glue) {
>> @@ -571,15 +572,12 @@ static int omap2430_probe(struct platform_device *pdev)
>>      memset(musb_resources, 0x00, sizeof(*musb_resources) *
>>                      ARRAY_SIZE(musb_resources));
>>  
>> -    musb_resources[0].name = pdev->resource[0].name;
>> -    musb_resources[0].start = pdev->resource[0].start;
>> -    musb_resources[0].end = pdev->resource[0].end;
>> -    musb_resources[0].flags = pdev->resource[0].flags;
>> -
>> -    musb_resources[1].name = pdev->resource[1].name;
>> -    musb_resources[1].start = pdev->resource[1].start;
>> -    musb_resources[1].end = pdev->resource[1].end;
>> -    musb_resources[1].flags = pdev->resource[1].flags;
>> +    for (i = 0; i < ARRAY_SIZE(musb_resources); i++) {
> 
> then this is not enough, what if one device using omap2430.c has 2
> resources and the other has 3 ? and what if a new one has 4 ?
> 
> How about using pdev->num_resources to dynamically allocate
> musb_resources array and using the same thing iterate here ?

Yeah. This looks better.

Thanks
Kishon
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to