| From e82b89a6f19bae73fb064d1b3dd91fcefbb478f4 Mon Sep 17 00:00:00 2001 |
| From: Prarit Bhargava <prarit@redhat.com> |
| Date: Mon, 23 Sep 2013 09:33:36 -0400 |
| Subject: powerpc/vio: Fix modalias_show return values |
| |
| From: Prarit Bhargava <prarit@redhat.com> |
| |
| commit e82b89a6f19bae73fb064d1b3dd91fcefbb478f4 upstream. |
| |
| modalias_show() should return an empty string on error, not -ENODEV. |
| |
| This causes the following false and annoying error: |
| |
| > find /sys/devices -name modalias -print0 | xargs -0 cat >/dev/null |
| cat: /sys/devices/vio/4000/modalias: No such device |
| cat: /sys/devices/vio/4001/modalias: No such device |
| cat: /sys/devices/vio/4002/modalias: No such device |
| cat: /sys/devices/vio/4004/modalias: No such device |
| cat: /sys/devices/vio/modalias: No such device |
| |
| Signed-off-by: Prarit Bhargava <prarit@redhat.com> |
| Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/powerpc/kernel/vio.c | 12 ++++++++---- |
| 1 file changed, 8 insertions(+), 4 deletions(-) |
| |
| --- a/arch/powerpc/kernel/vio.c |
| +++ b/arch/powerpc/kernel/vio.c |
| @@ -1529,11 +1529,15 @@ static ssize_t modalias_show(struct devi |
| const char *cp; |
| |
| dn = dev->of_node; |
| - if (!dn) |
| - return -ENODEV; |
| + if (!dn) { |
| + strcat(buf, "\n"); |
| + return strlen(buf); |
| + } |
| cp = of_get_property(dn, "compatible", NULL); |
| - if (!cp) |
| - return -ENODEV; |
| + if (!cp) { |
| + strcat(buf, "\n"); |
| + return strlen(buf); |
| + } |
| |
| return sprintf(buf, "vio:T%sS%s\n", vio_dev->type, cp); |
| } |