Re: [PATCHv4] fat: don't use custom hex_to_bin()

From: Joe Perches
Date: Thu Sep 29 2011 - 14:41:50 EST


On Fri, 2011-09-30 at 03:27 +0900, OGAWA Hirofumi wrote:
> Joe Perches <joe@xxxxxxxxxxx> writes:
>
> >> +
> >> + if (hex2bin(uc, ip + 1, 2) < 0)
> >> return -EINVAL;
> >> - }
> >> - *op++ = ec & 0xFF;
> >> - *op++ = ec >> 8;
> >> +
> >> + *(wchar_t *)op++ = uc[0] << 8 | uc[1];
> >
> > perhaps:
> >
> > __le16 foo;
> >
> > if (hex2bin((u8 *)&foo, ip + 1, 2) < 0)
> > return -EINVAL;
> > *(u16 *)op = le16_to_cpu(foo);
> >
> > op += 2;
>
> I also thought about it. But I think it is not so good, like you had
> mistake. It should actually be "__be16 foo" and "be16_to_cpu()".
>
> If we used sscanf() instead of hex2bin(), I might agree to use
> "le16_to_cpu()" though.
>
> Thanks.

Funny.

I guess that's what I get for reading Andy's comment
and coding that readably.

+ /* The ip contains 2 bytes in little
+ * endian format. We need to get them
+ * in native endian. */



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/