[PATCH 34/44] staging: unisys: Prepare vbus_hdr_info to be public
Dan Carpenter
dan.carpenter at oracle.com
Sat May 16 11:22:16 UTC 2015
On Wed, May 13, 2015 at 01:22:28PM -0400, Benjamin Romer wrote:
> + hdr_info = kzalloc(sizeof(*hdr_info), GFP_KERNEL);
> + if (!hdr_info) {
> + rc = NULL;
> + goto away_mem;
> + }
> +
> dev_set_name(&devdata->dev, "visorbus%d", id);
> devdata->dev.bus = &visorbus_type;
> devdata->dev.groups = visorbus_groups;
> @@ -1344,26 +1352,19 @@ create_bus_instance(struct visorchipset_bus_info *bus_info)
> POSTCODE_LINUX_3(DEVICE_CREATE_FAILURE_PC, id,
> POSTCODE_SEVERITY_ERR);
> rc = NULL;
> - goto away;
> + goto away_mem2;
> }
> devdata->devno = id;
> devdata->chan = bus_info->visorchannel;
> if (bus_info->flags.server) {
> init_vbus_channel(devdata->chan);
> } else {
> - if (get_vbus_header_info(devdata->chan,
> - &devdata->
> - vbus_hdr_info) >= 0) {
> - devdata->vbus_valid = true;
> - write_vbus_chp_info(devdata->chan,
> - &devdata->
> - vbus_hdr_info,
> - &chipset_driverinfo
> - );
> - write_vbus_bus_info(devdata->chan,
> - &devdata->
> - vbus_hdr_info,
> - &clientbus_driverinfo);
> + if (get_vbus_header_info(devdata->chan, hdr_info) >= 0) {
> + devdata->vbus_hdr_info = (void *)hdr_info;
> + write_vbus_chp_info(devdata->chan, hdr_info,
> + &chipset_driverinfo);
> + write_vbus_bus_info(devdata->chan, hdr_info,
> + &clientbus_driverinfo);
> }
> }
> bus_count++;
We still leak hdr_info on some paths.
regards,
dan carpenter
More information about the devel
mailing list