Messages in this thread | | | Subject | Re: request_firmware() hotplug interface, third round and a halve | From | Alexey Mahotkin <> | Date | Sun, 18 May 2003 20:14:06 +0400 |
| |
Two comments on firmware_class_hotplug(), maybe both are irrelevant.
+int firmware_class_hotplug(struct class_device *class_dev, char **envp, + int num_envp, char *buffer, int buffer_size) +{ + struct firmware_priv *fw_priv = class_get_devdata(class_dev); + int i=0; + char *scratch=buffer; + + if (buffer_size < (FIRMWARE_NAME_MAX+10)) + return -ENOMEM; + + envp [i++] = scratch; + scratch += sprintf(scratch, "FIRMWARE=%s", fw_priv->fw_id) + 1; + return 0; +} +
First, I do not understand how the environment is handled here. You're just setting first element of provided environment to "FIRMWARE=%s", possibly overwriting the existing value. Then why are you incrementing `i'? Why are you using `i' at all? Why are you incrementing `scratch'?
Ah, it seems like you should be using num_envp somehow, and you're not.
Also, environment pointer list must be terminated with a NULL pointer. Is it not done or is that handled somewhere else? The machine I have 2.5.69 sources is not reachable now so I cannot check it. Sorry if I am wrong.
--alexm - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |