Skip to content

Commit

Permalink
Input: trackpoint - handle sysfs errors
Browse files Browse the repository at this point in the history
Also use kzalloc instead of kcalloc since we are allocating single object.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
  • Loading branch information
Jeff Garzik authored and Dmitry Torokhov committed Nov 3, 2006
1 parent 8dd5165 commit 8ff22ea
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions drivers/input/mouse/trackpoint.c
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,7 @@ int trackpoint_detect(struct psmouse *psmouse, int set_properties)
struct ps2dev *ps2dev = &psmouse->ps2dev;
unsigned char firmware_id;
unsigned char button_info;
int error;

if (trackpoint_start_protocol(psmouse, &firmware_id))
return -1;
Expand All @@ -305,7 +306,7 @@ int trackpoint_detect(struct psmouse *psmouse, int set_properties)
button_info = 0;
}

psmouse->private = priv = kcalloc(1, sizeof(struct trackpoint_data), GFP_KERNEL);
psmouse->private = priv = kzalloc(sizeof(struct trackpoint_data), GFP_KERNEL);
if (!priv)
return -1;

Expand All @@ -318,7 +319,14 @@ int trackpoint_detect(struct psmouse *psmouse, int set_properties)
trackpoint_defaults(priv);
trackpoint_sync(psmouse);

sysfs_create_group(&ps2dev->serio->dev.kobj, &trackpoint_attr_group);
error = sysfs_create_group(&ps2dev->serio->dev.kobj, &trackpoint_attr_group);
if (error) {
printk(KERN_ERR
"trackpoint.c: failed to create sysfs attributes, error: %d\n",
error);
kfree(priv);
return -1;
}

printk(KERN_INFO "IBM TrackPoint firmware: 0x%02x, buttons: %d/%d\n",
firmware_id, (button_info & 0xf0) >> 4, button_info & 0x0f);
Expand Down

0 comments on commit 8ff22ea

Please sign in to comment.