Subject: Re: mmc core broken dependency on CONFIG_BLOCK (Was: linux-next: Tree for Oct 11 (mmc))

From: Randy Dunlap <[email-masked]>
Date: Tue, 11 Oct 2011 14:59:34 -0700

On 10/11/11 12:31, Andrei Warkentin wrote:
> Hi Randy,
> 
> ----- Original Message -----
>> From: "Randy Dunlap" <[email-masked]>
>> To: "Stephen Rothwell" <[email-masked]>
>> Cc: [email-masked], "LKML" <[email-masked]>, [email-masked], "Chris Ball"
>> <[email-masked]>
>> Sent: Tuesday, October 11, 2011 2:49:39 PM
>> Subject: Re: linux-next: Tree for Oct 11 (mmc)
>>
>> On 10/11/11 02:11, Stephen Rothwell wrote:
>>> Hi all,
>>>
>>> The linux-next tree is now available from
>>> git://github.com/sfrothwell/linux-next.git as a temporary measure
>>> while
>>> the kernel.org servers are unavailable.
>>>
>>> It may also turn up on git.kernel.org (depending on the mirroring).
>>>  The
>>> patch set is still absent, however.
>>>
>>> Changes since 20111007:
>>
>>
>> When CONFIG_BLOCK is not enabled:
>>
>> In file included from
>> next-2011-1011/drivers/mmc/card/sdio_uart.c:43:0:
>> next-2011-1011/include/linux/mmc/card.h:175:12: error:
>> 'DISK_NAME_LEN' undeclared here (not in a function)
>>
>> Deleting the #include <linux/mmc/card.h> fixes the sdio_uart.c build.
>> However, the same problem occurs in mmc/core/core.c:
>>
> 
> Because linux/genhd is now included, oops. I'm pretty positive this is due to the "mmc : general purpose partition support" patch pulled recently. I am adding NamJae, who was the author.
> 
>> In file included from next-2011-1011/drivers/mmc/core/core.c:30:0:
>> next-2011-1011/include/linux/mmc/card.h:175:12: error:
>> 'DISK_NAME_LEN' undeclared here (not in a function)
>>
>> Should mmc/core/ depend on BLOCK?  or should it just be made
>> to build even when BLOCK is not enabled?
>>
> 
> I don't think there should be a direct dependency on BLOCK. I have two suggestions -
> 1) Have our own define similar to (and in fact smaller):
>    linux/genhd.h:#define DISK_NAME_LEN                     32
> 2) Put the MMC physical partition code under an #ifdef CONFIG_BLOCK, which is a reasonable
>    proposition, given that there wouldn't be any need to parse physical partition info if
>    it would never be consumed by the MMC block driver.
> 
> Thoughts?

Agreed on part 2).  Do part 1) if it is required, but it's usually better
not to duplicate constants or structs etc.
IOW, can DISK_NAME_LEN in linux/genhd.h be exposed even when CONFIG_BLOCK
is not enabled?

-- 
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***