Re: [PATCH 0/7] Fixups for duplicate slot names

Alex Chiang
2008-08-07T17:25:41Z

* Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>:
> Hi Alex-san,
>
> Thank you for patches!
>
> I looked at your patches and it looks good. But I have only one
> concern about how to allocate/free memory for slot name.
>
> With your change, memory region for slot name will be allocated
> by hotplug *controller* driver and it can be freed using kfree()
> by hotplug *core* driver (not hotplug controller driver). So all
> hotplug controller drivers including drivers implemented in the
> future need to take it into account.
>
> I think it will be more robust if we can allocate and free memory
> in the same component (maybe hotplug core driver in this case).

Hm, I didn't think this would be a problem. The sequence is:

- controller allocates memory for slot name
- if core detects a collision:
- it frees the name
- it allocates new memory for name
- it assigns that memory to the name parameter
- controller->release will eventually free the name

So it shouldn't matter if the core frees the original name
pointer and allocates new memory, because the core will change
the pointer for the controller.

This is why I had to change the interface of pci_create_slot()
from taking a const char *name to a char *name.

Is there something I'm missing?

/ac