|
@@ -231,7 +231,6 @@ static ssize_t qeth_dev_prioqing_store(struct device *dev,
|
|
|
struct device_attribute *attr, const char *buf, size_t count)
|
|
|
{
|
|
|
struct qeth_card *card = dev_get_drvdata(dev);
|
|
|
- char *tmp;
|
|
|
int rc = 0;
|
|
|
|
|
|
if (!card)
|
|
@@ -253,36 +252,35 @@ static ssize_t qeth_dev_prioqing_store(struct device *dev,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
- tmp = strsep((char **) &buf, "\n");
|
|
|
- if (!strcmp(tmp, "prio_queueing_prec")) {
|
|
|
+ if (sysfs_streq(buf, "prio_queueing_prec")) {
|
|
|
card->qdio.do_prio_queueing = QETH_PRIO_Q_ING_PREC;
|
|
|
card->qdio.default_out_queue = QETH_DEFAULT_QUEUE;
|
|
|
- } else if (!strcmp(tmp, "prio_queueing_skb")) {
|
|
|
+ } else if (sysfs_streq(buf, "prio_queueing_skb")) {
|
|
|
card->qdio.do_prio_queueing = QETH_PRIO_Q_ING_SKB;
|
|
|
card->qdio.default_out_queue = QETH_DEFAULT_QUEUE;
|
|
|
- } else if (!strcmp(tmp, "prio_queueing_tos")) {
|
|
|
+ } else if (sysfs_streq(buf, "prio_queueing_tos")) {
|
|
|
card->qdio.do_prio_queueing = QETH_PRIO_Q_ING_TOS;
|
|
|
card->qdio.default_out_queue = QETH_DEFAULT_QUEUE;
|
|
|
- } else if (!strcmp(tmp, "prio_queueing_vlan")) {
|
|
|
+ } else if (sysfs_streq(buf, "prio_queueing_vlan")) {
|
|
|
if (!card->options.layer2) {
|
|
|
rc = -ENOTSUPP;
|
|
|
goto out;
|
|
|
}
|
|
|
card->qdio.do_prio_queueing = QETH_PRIO_Q_ING_VLAN;
|
|
|
card->qdio.default_out_queue = QETH_DEFAULT_QUEUE;
|
|
|
- } else if (!strcmp(tmp, "no_prio_queueing:0")) {
|
|
|
+ } else if (sysfs_streq(buf, "no_prio_queueing:0")) {
|
|
|
card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING;
|
|
|
card->qdio.default_out_queue = 0;
|
|
|
- } else if (!strcmp(tmp, "no_prio_queueing:1")) {
|
|
|
+ } else if (sysfs_streq(buf, "no_prio_queueing:1")) {
|
|
|
card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING;
|
|
|
card->qdio.default_out_queue = 1;
|
|
|
- } else if (!strcmp(tmp, "no_prio_queueing:2")) {
|
|
|
+ } else if (sysfs_streq(buf, "no_prio_queueing:2")) {
|
|
|
card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING;
|
|
|
card->qdio.default_out_queue = 2;
|
|
|
- } else if (!strcmp(tmp, "no_prio_queueing:3")) {
|
|
|
+ } else if (sysfs_streq(buf, "no_prio_queueing:3")) {
|
|
|
card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING;
|
|
|
card->qdio.default_out_queue = 3;
|
|
|
- } else if (!strcmp(tmp, "no_prio_queueing")) {
|
|
|
+ } else if (sysfs_streq(buf, "no_prio_queueing")) {
|
|
|
card->qdio.do_prio_queueing = QETH_NO_PRIO_QUEUEING;
|
|
|
card->qdio.default_out_queue = QETH_DEFAULT_QUEUE;
|
|
|
} else
|
|
@@ -497,8 +495,6 @@ static ssize_t qeth_dev_isolation_store(struct device *dev,
|
|
|
struct qeth_card *card = dev_get_drvdata(dev);
|
|
|
enum qeth_ipa_isolation_modes isolation;
|
|
|
int rc = 0;
|
|
|
- char *tmp, *curtoken;
|
|
|
- curtoken = (char *) buf;
|
|
|
|
|
|
if (!card)
|
|
|
return -EINVAL;
|
|
@@ -515,12 +511,11 @@ static ssize_t qeth_dev_isolation_store(struct device *dev,
|
|
|
}
|
|
|
|
|
|
/* parse input into isolation mode */
|
|
|
- tmp = strsep(&curtoken, "\n");
|
|
|
- if (!strcmp(tmp, ATTR_QETH_ISOLATION_NONE)) {
|
|
|
+ if (sysfs_streq(buf, ATTR_QETH_ISOLATION_NONE)) {
|
|
|
isolation = ISOLATION_MODE_NONE;
|
|
|
- } else if (!strcmp(tmp, ATTR_QETH_ISOLATION_FWD)) {
|
|
|
+ } else if (sysfs_streq(buf, ATTR_QETH_ISOLATION_FWD)) {
|
|
|
isolation = ISOLATION_MODE_FWD;
|
|
|
- } else if (!strcmp(tmp, ATTR_QETH_ISOLATION_DROP)) {
|
|
|
+ } else if (sysfs_streq(buf, ATTR_QETH_ISOLATION_DROP)) {
|
|
|
isolation = ISOLATION_MODE_DROP;
|
|
|
} else {
|
|
|
rc = -EINVAL;
|
|
@@ -531,8 +526,7 @@ static ssize_t qeth_dev_isolation_store(struct device *dev,
|
|
|
/* defer IP assist if device is offline (until discipline->set_online)*/
|
|
|
card->options.prev_isolation = card->options.isolation;
|
|
|
card->options.isolation = isolation;
|
|
|
- if (card->state == CARD_STATE_SOFTSETUP ||
|
|
|
- card->state == CARD_STATE_UP) {
|
|
|
+ if (qeth_card_hw_is_reachable(card)) {
|
|
|
int ipa_rc = qeth_set_access_ctrl_online(card, 1);
|
|
|
if (ipa_rc != 0)
|
|
|
rc = ipa_rc;
|
|
@@ -555,7 +549,7 @@ static ssize_t qeth_dev_switch_attrs_show(struct device *dev,
|
|
|
if (!card)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- if (card->state != CARD_STATE_SOFTSETUP && card->state != CARD_STATE_UP)
|
|
|
+ if (!qeth_card_hw_is_reachable(card))
|
|
|
return sprintf(buf, "n/a\n");
|
|
|
|
|
|
rc = qeth_query_switch_attributes(card, &sw_info);
|
|
@@ -598,19 +592,16 @@ static ssize_t qeth_hw_trap_store(struct device *dev,
|
|
|
{
|
|
|
struct qeth_card *card = dev_get_drvdata(dev);
|
|
|
int rc = 0;
|
|
|
- char *tmp, *curtoken;
|
|
|
int state = 0;
|
|
|
- curtoken = (char *)buf;
|
|
|
|
|
|
if (!card)
|
|
|
return -EINVAL;
|
|
|
|
|
|
mutex_lock(&card->conf_mutex);
|
|
|
- if (card->state == CARD_STATE_SOFTSETUP || card->state == CARD_STATE_UP)
|
|
|
+ if (qeth_card_hw_is_reachable(card))
|
|
|
state = 1;
|
|
|
- tmp = strsep(&curtoken, "\n");
|
|
|
|
|
|
- if (!strcmp(tmp, "arm") && !card->info.hwtrap) {
|
|
|
+ if (sysfs_streq(buf, "arm") && !card->info.hwtrap) {
|
|
|
if (state) {
|
|
|
if (qeth_is_diagass_supported(card,
|
|
|
QETH_DIAGS_CMD_TRAP)) {
|
|
@@ -621,14 +612,14 @@ static ssize_t qeth_hw_trap_store(struct device *dev,
|
|
|
rc = -EINVAL;
|
|
|
} else
|
|
|
card->info.hwtrap = 1;
|
|
|
- } else if (!strcmp(tmp, "disarm") && card->info.hwtrap) {
|
|
|
+ } else if (sysfs_streq(buf, "disarm") && card->info.hwtrap) {
|
|
|
if (state) {
|
|
|
rc = qeth_hw_trap(card, QETH_DIAGS_TRAP_DISARM);
|
|
|
if (!rc)
|
|
|
card->info.hwtrap = 0;
|
|
|
} else
|
|
|
card->info.hwtrap = 0;
|
|
|
- } else if (!strcmp(tmp, "trap") && state && card->info.hwtrap)
|
|
|
+ } else if (sysfs_streq(buf, "trap") && state && card->info.hwtrap)
|
|
|
rc = qeth_hw_trap(card, QETH_DIAGS_TRAP_CAPTURE);
|
|
|
else
|
|
|
rc = -EINVAL;
|