/* The temporary storage will be removed after it has been used (eg. displayed to user), the wssid element will be removed from the list when the neighbor is rediscovered or when it disappears.  */
static struct wlp_wssid_e* wlp_create_wssid_e(struct wlp *wlp, struct wlp_neighbor_e *neighbor)
/* The temporary storage will be removed after it has been used (eg. displayed to user), the wssid element will be removed from the list when the neighbor is rediscovered or when it disappears.  */
static struct wlp_wssid_e* wlp_create_wssid_e(struct wlp *wlp, struct wlp_neighbor_e *neighbor)
{
	struct device *dev = &wlp->rc->uwb_dev.dev;
	struct wlp_wssid_e *wssid_e;
	wssid_e = kzalloc(sizeof(*wssid_e), GFP_KERNEL);
	if (wssid_e == NULL) {
		dev_err(dev, "WLP: unable to allocate memory "
			"for WSS information.\n");
		goto error_alloc;
	}
	wssid_e->info = kzalloc(sizeof(struct wlp_wss_tmp_info), GFP_KERNEL);
	if (wssid_e->info == NULL) {
		dev_err(dev, "WLP: unable to allocate memory "
			"for temporary WSS information.\n");
		kfree(wssid_e);
		wssid_e = NULL;
		goto error_alloc;
	}
	list_add(&wssid_e->node, &neighbor->wssid);
error_alloc:
	return wssid_e;
}