Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

qeth: move OSA portname into deprecated status

An OSA-Express port name was required to identify a shared OSA port.
All operating system instances that shared the port had to use the
same port name. This requirement no longer applies.

Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Ursula Braun and committed by
David S. Miller
239ff408 248046ba

+11 -97
-2
drivers/s390/net/qeth_core.h
··· 663 663 char mcl_level[QETH_MCL_LENGTH + 1]; 664 664 int guestlan; 665 665 int mac_bits; 666 - int portname_required; 667 666 int portno; 668 - char portname[9]; 669 667 enum qeth_card_types type; 670 668 enum qeth_link_types link_type; 671 669 int is_multicast_different;
+7 -56
drivers/s390/net/qeth_core_main.c
··· 1982 1982 goto out; 1983 1983 } 1984 1984 1985 - /** 1986 - * * temporary fix for microcode bug 1987 - * * to revert it,replace OR by AND 1988 - * */ 1989 - if ((!QETH_IDX_NO_PORTNAME_REQUIRED(iob->data)) || 1990 - (card->info.type == QETH_CARD_TYPE_OSD)) 1991 - card->info.portname_required = 1; 1992 - 1993 1985 memcpy(&temp, QETH_IDX_ACT_FUNC_LEVEL(iob->data), 2); 1994 1986 if (temp != qeth_peer_func_level(card->info.func_level)) { 1995 1987 QETH_DBF_MESSAGE(2, "%s IDX_ACTIVATE on read channel: function " ··· 2352 2360 &card->token.cm_connection_r, QETH_MPC_TOKEN_LENGTH); 2353 2361 memcpy(QETH_ULP_ENABLE_FILTER_TOKEN(iob->data), 2354 2362 &card->token.ulp_filter_w, QETH_MPC_TOKEN_LENGTH); 2355 - memcpy(QETH_ULP_ENABLE_PORTNAME_AND_LL(iob->data), 2356 - card->info.portname, 9); 2357 2363 rc = qeth_send_control_data(card, ULP_ENABLE_SIZE, iob, 2358 2364 qeth_ulp_enable_cb, NULL); 2359 2365 return rc; ··· 2670 2680 return rc; 2671 2681 } 2672 2682 2673 - static void qeth_print_status_with_portname(struct qeth_card *card) 2674 - { 2675 - char dbf_text[15]; 2676 - int i; 2677 - 2678 - sprintf(dbf_text, "%s", card->info.portname + 1); 2679 - for (i = 0; i < 8; i++) 2680 - dbf_text[i] = 2681 - (char) _ebcasc[(__u8) dbf_text[i]]; 2682 - dbf_text[8] = 0; 2683 - dev_info(&card->gdev->dev, "Device is a%s card%s%s%s\n" 2684 - "with link type %s (portname: %s)\n", 2685 - qeth_get_cardname(card), 2686 - (card->info.mcl_level[0]) ? " (level: " : "", 2687 - (card->info.mcl_level[0]) ? card->info.mcl_level : "", 2688 - (card->info.mcl_level[0]) ? ")" : "", 2689 - qeth_get_cardname_short(card), 2690 - dbf_text); 2691 - 2692 - } 2693 - 2694 - static void qeth_print_status_no_portname(struct qeth_card *card) 2695 - { 2696 - if (card->info.portname[0]) 2697 - dev_info(&card->gdev->dev, "Device is a%s " 2698 - "card%s%s%s\nwith link type %s " 2699 - "(no portname needed by interface).\n", 2700 - qeth_get_cardname(card), 2701 - (card->info.mcl_level[0]) ? " (level: " : "", 2702 - (card->info.mcl_level[0]) ? card->info.mcl_level : "", 2703 - (card->info.mcl_level[0]) ? ")" : "", 2704 - qeth_get_cardname_short(card)); 2705 - else 2706 - dev_info(&card->gdev->dev, "Device is a%s " 2707 - "card%s%s%s\nwith link type %s.\n", 2708 - qeth_get_cardname(card), 2709 - (card->info.mcl_level[0]) ? " (level: " : "", 2710 - (card->info.mcl_level[0]) ? card->info.mcl_level : "", 2711 - (card->info.mcl_level[0]) ? ")" : "", 2712 - qeth_get_cardname_short(card)); 2713 - } 2714 - 2715 2683 void qeth_print_status_message(struct qeth_card *card) 2716 2684 { 2717 2685 switch (card->info.type) { ··· 2706 2758 default: 2707 2759 memset(&card->info.mcl_level[0], 0, QETH_MCL_LENGTH + 1); 2708 2760 } 2709 - if (card->info.portname_required) 2710 - qeth_print_status_with_portname(card); 2711 - else 2712 - qeth_print_status_no_portname(card); 2761 + dev_info(&card->gdev->dev, 2762 + "Device is a%s card%s%s%s\nwith link type %s.\n", 2763 + qeth_get_cardname(card), 2764 + (card->info.mcl_level[0]) ? " (level: " : "", 2765 + (card->info.mcl_level[0]) ? card->info.mcl_level : "", 2766 + (card->info.mcl_level[0]) ? ")" : "", 2767 + qeth_get_cardname_short(card)); 2713 2768 } 2714 2769 EXPORT_SYMBOL_GPL(qeth_print_status_message); 2715 2770
+4 -39
drivers/s390/net/qeth_core_sys.c
··· 153 153 static ssize_t qeth_dev_portname_show(struct device *dev, 154 154 struct device_attribute *attr, char *buf) 155 155 { 156 - struct qeth_card *card = dev_get_drvdata(dev); 157 - char portname[9] = {0, }; 158 - 159 - if (!card) 160 - return -EINVAL; 161 - 162 - if (card->info.portname_required) { 163 - memcpy(portname, card->info.portname + 1, 8); 164 - EBCASC(portname, 8); 165 - return sprintf(buf, "%s\n", portname); 166 - } else 167 - return sprintf(buf, "no portname required\n"); 156 + return sprintf(buf, "no portname required\n"); 168 157 } 169 158 170 159 static ssize_t qeth_dev_portname_store(struct device *dev, 171 160 struct device_attribute *attr, const char *buf, size_t count) 172 161 { 173 162 struct qeth_card *card = dev_get_drvdata(dev); 174 - char *tmp; 175 - int i, rc = 0; 176 163 177 - if (!card) 178 - return -EINVAL; 179 - 180 - mutex_lock(&card->conf_mutex); 181 - if ((card->state != CARD_STATE_DOWN) && 182 - (card->state != CARD_STATE_RECOVER)) { 183 - rc = -EPERM; 184 - goto out; 185 - } 186 - 187 - tmp = strsep((char **) &buf, "\n"); 188 - if ((strlen(tmp) > 8) || (strlen(tmp) == 0)) { 189 - rc = -EINVAL; 190 - goto out; 191 - } 192 - 193 - card->info.portname[0] = strlen(tmp); 194 - /* for beauty reasons */ 195 - for (i = 1; i < 9; i++) 196 - card->info.portname[i] = ' '; 197 - strcpy(card->info.portname + 1, tmp); 198 - ASCEBC(card->info.portname + 1, 8); 199 - out: 200 - mutex_unlock(&card->conf_mutex); 201 - return rc ? rc : count; 164 + dev_warn_once(&card->gdev->dev, 165 + "portname is deprecated and is ignored\n"); 166 + return count; 202 167 } 203 168 204 169 static DEVICE_ATTR(portname, 0644, qeth_dev_portname_show,