2008-03-09 20:31:21

by Roel Kluin

[permalink] [raw]
Subject: MMC: logical-bitwise and confusion in tifm_sd_transfer_data()?

from drivers/mmc/host/tifm_sd.c:183:

if ((r_data->flags & MMC_DATA_WRITE)
&& DATA_CARRY)

shouldn't this be bit-wise &?


2008-03-10 12:58:48

by Pierre Ossman

[permalink] [raw]
Subject: Re: MMC: logical-bitwise and confusion in tifm_sd_transfer_data()?

On Sun, 09 Mar 2008 21:31:08 +0100
Roel Kluin <[email protected]> wrote:

> from drivers/mmc/host/tifm_sd.c:183:
>
> if ((r_data->flags & MMC_DATA_WRITE)
> && DATA_CARRY)
>
> shouldn't this be bit-wise &?

First off, I'm not the maintainer of that driver, Alex Dubov is.

Second, the code seems broken, but not in the way you suggest. It should probably have been:

if ((r_data->flags & MMC_DATA_WRITE)
&& (host->cmd_flags & DATA_CARRY))

Alex, could you have a look?

Rgds
--
-- Pierre Ossman

Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org

2008-03-11 07:41:11

by Alex Dubov

[permalink] [raw]
Subject: Re: MMC: logical-bitwise and confusion in tifm_sd_transfer_data()?


--- Pierre Ossman <[email protected]> wrote:

> On Sun, 09 Mar 2008 21:31:08 +0100
> Roel Kluin <[email protected]> wrote:
>
> > from drivers/mmc/host/tifm_sd.c:183:
> >
> > if ((r_data->flags & MMC_DATA_WRITE)
> > && DATA_CARRY)
> >
> > shouldn't this be bit-wise &?
>
> First off, I'm not the maintainer of that driver, Alex Dubov is.
>
> Second, the code seems broken, but not in the way you suggest. It should probably have been:
>
> if ((r_data->flags & MMC_DATA_WRITE)
> && (host->cmd_flags & DATA_CARRY))
>

Yes, this is the intended meaning. Can you fix it yourself or should I send a separate patch?



____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping

2008-03-11 08:00:55

by Roel Kluin

[permalink] [raw]
Subject: [PATCH] MMC: DATA_CARRY is not boolean in tifm_sd_transfer_data() (was: MMC: logical-bitwise and confusion in tifm_sd_transfer_data()?)

Alex Dubov wrote:
> --- Pierre Ossman <[email protected]> wrote:
>
>> On Sun, 09 Mar 2008 21:31:08 +0100
>> Roel Kluin <[email protected]> wrote:
>>
>>> from drivers/mmc/host/tifm_sd.c:183:
>>>
>>> if ((r_data->flags & MMC_DATA_WRITE)
>>> && DATA_CARRY)
>>>
>>> shouldn't this be bit-wise &?
>> First off, I'm not the maintainer of that driver, Alex Dubov is.
>>
>> Second, the code seems broken, but not in the way you suggest. It should probably have been:
>>
>> if ((r_data->flags & MMC_DATA_WRITE)
>> && (host->cmd_flags & DATA_CARRY))
>>
>
> Yes, this is the intended meaning. Can you fix it yourself or should I send a separate patch?

Thanks,
---
DATA_CARRY is not boolean

Signed-off-by: Roel Kluin <[email protected]>
---
diff --git a/drivers/mmc/host/tifm_sd.c b/drivers/mmc/host/tifm_sd.c
index 20d5c7b..1c14a18 100644
--- a/drivers/mmc/host/tifm_sd.c
+++ b/drivers/mmc/host/tifm_sd.c
@@ -180,7 +180,7 @@ static void tifm_sd_transfer_data(struct tifm_sd *host)
host->sg_pos++;
if (host->sg_pos == host->sg_len) {
if ((r_data->flags & MMC_DATA_WRITE)
- && DATA_CARRY)
+ && (host->cmd_flags & DATA_CARRY))
writel(host->bounce_buf_data[0],
host->dev->addr
+ SOCK_MMCSD_DATA);

2008-03-15 15:02:17

by Pierre Ossman

[permalink] [raw]
Subject: Re: [PATCH] MMC: DATA_CARRY is not boolean in tifm_sd_transfer_data() (was: MMC: logical-bitwise and confusion in tifm_sd_transfer_data()?)

On Tue, 11 Mar 2008 09:00:41 +0100
Roel Kluin <[email protected]> wrote:

> Alex Dubov wrote:
> >
> > Yes, this is the intended meaning. Can you fix it yourself or should I send a separate patch?
>
> Thanks,
> ---
> DATA_CARRY is not boolean
>
> Signed-off-by: Roel Kluin <[email protected]>
> ---

Sorry about the delay. I've sent this off to Linus now.

Rgds
--
-- Pierre Ossman

Linux kernel, MMC maintainer http://www.kernel.org
PulseAudio, core developer http://pulseaudio.org
rdesktop, core developer http://www.rdesktop.org