Commit 02815226 authored by Rob Herring's avatar Rob Herring
Browse files

Revert "of: base: Introduce of_alias_get_alias_list() to check alias IDs"



This reverts commit b1078c35.

The single user of of_alias_get_alias_list(),
drivers/tty/serial/xilinx_uartps.c, has since been refactored and no
longer needs this function. It also contained a Smatch checker warning:

 drivers/of/base.c:2038 of_alias_get_alias_list()
 warn: passing negative bit value 's32min-(-2),0-s32max' to 'set_bit()'

Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent 6ac02df3
Loading
Loading
Loading
Loading
+0 −54
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

#define pr_fmt(fmt)	"OF: " fmt

#include <linux/bitmap.h>
#include <linux/console.h>
#include <linux/ctype.h>
#include <linux/cpu.h>
@@ -1992,59 +1991,6 @@ int of_alias_get_id(struct device_node *np, const char *stem)
}
EXPORT_SYMBOL_GPL(of_alias_get_id);

/**
 * of_alias_get_alias_list - Get alias list for the given device driver
 * @matches:	Array of OF device match structures to search in
 * @stem:	Alias stem of the given device_node
 * @bitmap:	Bitmap field pointer
 * @nbits:	Maximum number of alias IDs which can be recorded in bitmap
 *
 * The function travels the lookup table to record alias ids for the given
 * device match structures and alias stem.
 *
 * Return:	0 or -ENOSYS when !CONFIG_OF or
 *		-EOVERFLOW if alias ID is greater then allocated nbits
 */
int of_alias_get_alias_list(const struct of_device_id *matches,
			     const char *stem, unsigned long *bitmap,
			     unsigned int nbits)
{
	struct alias_prop *app;
	int ret = 0;

	/* Zero bitmap field to make sure that all the time it is clean */
	bitmap_zero(bitmap, nbits);

	mutex_lock(&of_mutex);
	pr_debug("%s: Looking for stem: %s\n", __func__, stem);
	list_for_each_entry(app, &aliases_lookup, link) {
		pr_debug("%s: stem: %s, id: %d\n",
			 __func__, app->stem, app->id);

		if (strcmp(app->stem, stem) != 0) {
			pr_debug("%s: stem comparison didn't pass %s\n",
				 __func__, app->stem);
			continue;
		}

		if (of_match_node(matches, app->np)) {
			pr_debug("%s: Allocated ID %d\n", __func__, app->id);

			if (app->id >= nbits) {
				pr_warn("%s: ID %d >= than bitmap field %d\n",
					__func__, app->id, nbits);
				ret = -EOVERFLOW;
			} else {
				set_bit(app->id, bitmap);
			}
		}
	}
	mutex_unlock(&of_mutex);

	return ret;
}
EXPORT_SYMBOL_GPL(of_alias_get_alias_list);

/**
 * of_alias_get_highest_id - Get highest alias id for the given stem
 * @stem:	Alias stem to be examined
+0 −10
Original line number Diff line number Diff line
@@ -388,9 +388,6 @@ extern int of_phandle_iterator_args(struct of_phandle_iterator *it,
extern void of_alias_scan(void * (*dt_alloc)(u64 size, u64 align));
extern int of_alias_get_id(struct device_node *np, const char *stem);
extern int of_alias_get_highest_id(const char *stem);
extern int of_alias_get_alias_list(const struct of_device_id *matches,
				   const char *stem, unsigned long *bitmap,
				   unsigned int nbits);

extern int of_machine_is_compatible(const char *compat);

@@ -766,13 +763,6 @@ static inline int of_alias_get_highest_id(const char *stem)
	return -ENOSYS;
}

static inline int of_alias_get_alias_list(const struct of_device_id *matches,
					  const char *stem, unsigned long *bitmap,
					  unsigned int nbits)
{
	return -ENOSYS;
}

static inline int of_machine_is_compatible(const char *compat)
{
	return 0;