aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Belisko <marek.belisko@gmail.com>2010-10-15 02:57:25 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2010-10-15 15:41:35 -0400
commit78890fdb24e2f61c22a9bf75270e14018bff83c5 (patch)
treef76725e2a8ede8286052602dfc11b4477a7d42a0
parentdd9b6aa4fd58b3ac39a696e518a09994e687ba72 (diff)
staging: ft1000: Use specific return error codes.
Signed-off-by: Marek Belisko <marek.belisko@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/ft1000/ft1000-usb/ft1000_hw.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
index 1190f361d8dc..1f91f2242ce4 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_hw.c
@@ -952,7 +952,7 @@ u16 init_ft1000_netdev(struct ft1000_device *ft1000dev)
952 if (!netdev ) 952 if (!netdev )
953 { 953 {
954 DEBUG("init_ft1000_netdev: can not allocate network device\n"); 954 DEBUG("init_ft1000_netdev: can not allocate network device\n");
955 return STATUS_FAILURE; 955 return -ENOMEM;
956 } 956 }
957 957
958 //pInfo = (PFT1000_INFO)netdev->priv; 958 //pInfo = (PFT1000_INFO)netdev->priv;
@@ -975,8 +975,7 @@ u16 init_ft1000_netdev(struct ft1000_device *ft1000dev)
975 ret_val = strict_strtoul(card_nr, 10, &gCardIndex); 975 ret_val = strict_strtoul(card_nr, 10, &gCardIndex);
976 if (ret_val) { 976 if (ret_val) {
977 printk(KERN_ERR "Can't parse netdev\n"); 977 printk(KERN_ERR "Can't parse netdev\n");
978 free_netdev(netdev); 978 goto err_net;
979 return STATUS_FAILURE;
980 } 979 }
981 980
982 pInfo->CardNumber = gCardIndex; 981 pInfo->CardNumber = gCardIndex;
@@ -984,8 +983,8 @@ u16 init_ft1000_netdev(struct ft1000_device *ft1000dev)
984 } 983 }
985 else { 984 else {
986 printk(KERN_ERR "ft1000: Invalid device name\n"); 985 printk(KERN_ERR "ft1000: Invalid device name\n");
987 free_netdev(netdev); 986 ret_val = -ENXIO;
988 return STATUS_FAILURE; 987 goto err_net;
989 } 988 }
990 } 989 }
991 else 990 else
@@ -1056,21 +1055,24 @@ u16 init_ft1000_netdev(struct ft1000_device *ft1000dev)
1056 for (i=0; i<NUM_OF_FREE_BUFFERS; i++) { 1055 for (i=0; i<NUM_OF_FREE_BUFFERS; i++) {
1057 // Get memory for DPRAM_DATA link list 1056 // Get memory for DPRAM_DATA link list
1058 pdpram_blk = kmalloc ( sizeof(DPRAM_BLK), GFP_KERNEL ); 1057 pdpram_blk = kmalloc ( sizeof(DPRAM_BLK), GFP_KERNEL );
1059 if (pdpram_blk == NULL) 1058 if (pdpram_blk == NULL) {
1060 goto err_free; 1059 ret_val = -ENOMEM;
1060 goto err_free;
1061 }
1061 // Get a block of memory to store command data 1062 // Get a block of memory to store command data
1062 pdpram_blk->pbuffer = kmalloc ( MAX_CMD_SQSIZE, GFP_KERNEL ); 1063 pdpram_blk->pbuffer = kmalloc ( MAX_CMD_SQSIZE, GFP_KERNEL );
1063 if (pdpram_blk->pbuffer == NULL) { 1064 if (pdpram_blk->pbuffer == NULL) {
1064 kfree(pdpram_blk); 1065 ret_val = -ENOMEM;
1065 goto err_free; 1066 kfree(pdpram_blk);
1066 } 1067 goto err_free;
1068 }
1067 // link provisioning data 1069 // link provisioning data
1068 list_add_tail (&pdpram_blk->list, &freercvpool); 1070 list_add_tail (&pdpram_blk->list, &freercvpool);
1069 } 1071 }
1070 numofmsgbuf = NUM_OF_FREE_BUFFERS; 1072 numofmsgbuf = NUM_OF_FREE_BUFFERS;
1071 1073
1072 1074
1073 return STATUS_SUCCESS; 1075 return 0;
1074 1076
1075 1077
1076err_free: 1078err_free:
@@ -1080,7 +1082,9 @@ err_free:
1080 kfree(pdpram_blk->pbuffer); 1082 kfree(pdpram_blk->pbuffer);
1081 kfree(pdpram_blk); 1083 kfree(pdpram_blk);
1082 } 1084 }
1083 return STATUS_FAILURE; 1085err_net:
1086 free_netdev(netdev);
1087 return ret_val;
1084} 1088}
1085 1089
1086 1090