Changeset 5f6e25e in mainline for uspace/lib/drv/generic/driver.c


Ignore:
Timestamp:
2011-08-29T23:00:12Z (13 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
58cbb0c8
Parents:
c5be39b
Message:

Leave it up to DDF to free driver-specific data. This makes it possible
to ensure soft state is not freed during calls to driver entry points.

This requires some driver changes:

  • minimum change is not to free() driver-data structures (ddf_fun_t.driver_data and ddf_dev_t.driver_data)
  • ideally allocate using ddf_dev_data_alloc(), ddf_fun_data_alloc()

I tried fixing existing drivers accordingly (mostly the minimalistic
change variant), but could have missed something.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/drv/generic/driver.c

    rc5be39b r5f6e25e  
    642642static void delete_device(ddf_dev_t *dev)
    643643{
     644        if (dev->driver_data != NULL)
     645                free(dev->driver_data);
    644646        free(dev);
    645647}
     
    652654{
    653655        clean_match_ids(&fun->match_ids);
     656        if (fun->driver_data != NULL)
     657                free(fun->driver_data);
    654658        if (fun->name != NULL)
    655659                free(fun->name);
Note: See TracChangeset for help on using the changeset viewer.