gigaset: fix error return code
authorTilman Schmidt <tilman@imap.cc>
Wed, 13 May 2009 12:44:17 +0000 (12:44 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 18 May 2009 03:51:25 +0000 (20:51 -0700)
gigaset_register_to_LL() is expected to print a message and return 0
on failure. Make it do so consistently.

Impact: error handling bugfix
Signed-off-by: Tilman Schmidt <tilman@imap.cc>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/isdn/gigaset/i4l.c

index 69a702f..9b22f9c 100644 (file)
@@ -544,11 +544,11 @@ int gigaset_register_to_LL(struct cardstate *cs, const char *isdnid)
 
        gig_dbg(DEBUG_ANY, "Register driver capabilities to LL");
 
-       //iif->id[sizeof(iif->id) - 1]=0;
-       //strncpy(iif->id, isdnid, sizeof(iif->id) - 1);
        if (snprintf(iif->id, sizeof iif->id, "%s_%u", isdnid, cs->minor_index)
-           >= sizeof iif->id)
-               return -ENOMEM; //FIXME EINVAL/...??
+           >= sizeof iif->id) {
+               pr_err("ID too long: %s\n", isdnid);
+               return 0;
+       }
 
        iif->owner = THIS_MODULE;
        iif->channels = cs->channels;
@@ -568,8 +568,10 @@ int gigaset_register_to_LL(struct cardstate *cs, const char *isdnid)
        iif->rcvcallb_skb = NULL;               /* Will be set by LL */
        iif->statcallb = NULL;                  /* Will be set by LL */
 
-       if (!register_isdn(iif))
+       if (!register_isdn(iif)) {
+               pr_err("register_isdn failed\n");
                return 0;
+       }
 
        cs->myid = iif->channels;               /* Set my device id */
        return 1;