On Thu, Mar 28, 2019 at 02:17:29PM +0100, Christian Gromm wrote:
> +static ssize_t mdev_link_direction_store(struct config_item *item,
> + const char *page, size_t count)
> +{
> + struct mdev_link *mdev_link = to_mdev_link(item);
> +
> + if (sysfs_streq(page, "dir_rx") && sysfs_streq(page, "rx") &&
> + sysfs_streq(page, "dir_tx") && sysfs_streq(page, "tx"))
These tests are reversed. It will never return -EINVAL because one
string can't be four things.
if (!sysfs_streq(page, "dir_rx") && !sysfs_streq(page, "rx") &&
!sysfs_streq(page, "dir_tx") && !sysfs_streq(page, "tx"))
return -EINVAL;
The sysfs_streq() return true if the strings are equal. The strcmp()
functions less intuitive and they should be used like this:
if (strcmp(foo, bar) < 0) { // <-- foo < bar
if (strcmp(foo, bar) != 0) { // <-- foo != bar
if (strcmp(foo, bar) == 0) { // <-- foo == bar
The other streq() tests have the same issue.
regards,
dan carpenter
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel