/* unregister a client callback that called when device plugged in/unplugged */
void smscore_unregister_hotplug(hotplug_t hotplug)
/* unregister a client callback that called when device plugged in/unplugged */
void smscore_unregister_hotplug(hotplug_t hotplug)
{
	struct list_head *next, *first;
	kmutex_lock(&g_smscore_deviceslock);
	first = &g_smscore_notifyees;
	for (next = first->next; next != first;) {
		struct smscore_device_notifyee_t *notifyee =
			(struct smscore_device_notifyee_t *) next;
		next = next->next;
		if (notifyee->hotplug == hotplug) {
			list_del(&notifyee->entry);
			kfree(notifyee);
		}
	}
	kmutex_unlock(&g_smscore_deviceslock);
}