Skip to content

Commit d65626a

Browse files
julianwiedmanndavem330
authored andcommitted
s390/qeth: extract bridgeport cmd builder
Consolidation of duplicated code, no functional change. Signed-off-by: Julian Wiedmann <jwi@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent cef6ff2 commit d65626a

File tree

1 file changed

+26
-36
lines changed

1 file changed

+26
-36
lines changed

drivers/s390/net/qeth_l2_main.c

Lines changed: 26 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1724,11 +1724,26 @@ static int qeth_bridgeport_makerc(struct qeth_card *card,
17241724
return rc;
17251725
}
17261726

1727-
static inline int ipa_cmd_sbp(struct qeth_card *card)
1727+
static struct qeth_cmd_buffer *qeth_sbp_build_cmd(struct qeth_card *card,
1728+
enum qeth_ipa_sbp_cmd sbp_cmd,
1729+
unsigned int cmd_length)
17281730
{
1729-
return (card->info.type == QETH_CARD_TYPE_IQD) ?
1730-
IPA_CMD_SETBRIDGEPORT_IQD :
1731-
IPA_CMD_SETBRIDGEPORT_OSA;
1731+
enum qeth_ipa_cmds ipa_cmd = (card->info.type == QETH_CARD_TYPE_IQD) ?
1732+
IPA_CMD_SETBRIDGEPORT_IQD :
1733+
IPA_CMD_SETBRIDGEPORT_OSA;
1734+
struct qeth_cmd_buffer *iob;
1735+
struct qeth_ipa_cmd *cmd;
1736+
1737+
iob = qeth_get_ipacmd_buffer(card, ipa_cmd, 0);
1738+
if (!iob)
1739+
return iob;
1740+
cmd = (struct qeth_ipa_cmd *)(iob->data+IPA_PDU_HEADER_SIZE);
1741+
cmd->data.sbp.hdr.cmdlength = sizeof(struct qeth_ipacmd_sbp_hdr) +
1742+
cmd_length;
1743+
cmd->data.sbp.hdr.command_code = sbp_cmd;
1744+
cmd->data.sbp.hdr.used_total = 1;
1745+
cmd->data.sbp.hdr.seq_no = 1;
1746+
return iob;
17321747
}
17331748

17341749
static int qeth_bridgeport_query_support_cb(struct qeth_card *card,
@@ -1758,21 +1773,13 @@ static int qeth_bridgeport_query_support_cb(struct qeth_card *card,
17581773
static void qeth_bridgeport_query_support(struct qeth_card *card)
17591774
{
17601775
struct qeth_cmd_buffer *iob;
1761-
struct qeth_ipa_cmd *cmd;
17621776
struct _qeth_sbp_cbctl cbctl;
17631777

17641778
QETH_CARD_TEXT(card, 2, "brqsuppo");
1765-
iob = qeth_get_ipacmd_buffer(card, ipa_cmd_sbp(card), 0);
1779+
iob = qeth_sbp_build_cmd(card, IPA_SBP_QUERY_COMMANDS_SUPPORTED,
1780+
sizeof(struct qeth_sbp_query_cmds_supp));
17661781
if (!iob)
17671782
return;
1768-
cmd = (struct qeth_ipa_cmd *)(iob->data+IPA_PDU_HEADER_SIZE);
1769-
cmd->data.sbp.hdr.cmdlength =
1770-
sizeof(struct qeth_ipacmd_sbp_hdr) +
1771-
sizeof(struct qeth_sbp_query_cmds_supp);
1772-
cmd->data.sbp.hdr.command_code =
1773-
IPA_SBP_QUERY_COMMANDS_SUPPORTED;
1774-
cmd->data.sbp.hdr.used_total = 1;
1775-
cmd->data.sbp.hdr.seq_no = 1;
17761783
if (qeth_send_ipa_cmd(card, iob, qeth_bridgeport_query_support_cb,
17771784
(void *)&cbctl) ||
17781785
qeth_bridgeport_makerc(card, &cbctl,
@@ -1826,7 +1833,6 @@ int qeth_bridgeport_query_ports(struct qeth_card *card,
18261833
{
18271834
int rc = 0;
18281835
struct qeth_cmd_buffer *iob;
1829-
struct qeth_ipa_cmd *cmd;
18301836
struct _qeth_sbp_cbctl cbctl = {
18311837
.data = {
18321838
.qports = {
@@ -1839,16 +1845,9 @@ int qeth_bridgeport_query_ports(struct qeth_card *card,
18391845
QETH_CARD_TEXT(card, 2, "brqports");
18401846
if (!(card->options.sbp.supported_funcs & IPA_SBP_QUERY_BRIDGE_PORTS))
18411847
return -EOPNOTSUPP;
1842-
iob = qeth_get_ipacmd_buffer(card, ipa_cmd_sbp(card), 0);
1848+
iob = qeth_sbp_build_cmd(card, IPA_SBP_QUERY_BRIDGE_PORTS, 0);
18431849
if (!iob)
18441850
return -ENOMEM;
1845-
cmd = (struct qeth_ipa_cmd *)(iob->data+IPA_PDU_HEADER_SIZE);
1846-
cmd->data.sbp.hdr.cmdlength =
1847-
sizeof(struct qeth_ipacmd_sbp_hdr);
1848-
cmd->data.sbp.hdr.command_code =
1849-
IPA_SBP_QUERY_BRIDGE_PORTS;
1850-
cmd->data.sbp.hdr.used_total = 1;
1851-
cmd->data.sbp.hdr.seq_no = 1;
18521851
rc = qeth_send_ipa_cmd(card, iob, qeth_bridgeport_query_ports_cb,
18531852
(void *)&cbctl);
18541853
if (rc < 0)
@@ -1880,40 +1879,31 @@ int qeth_bridgeport_setrole(struct qeth_card *card, enum qeth_sbp_roles role)
18801879
int rc = 0;
18811880
int cmdlength;
18821881
struct qeth_cmd_buffer *iob;
1883-
struct qeth_ipa_cmd *cmd;
18841882
struct _qeth_sbp_cbctl cbctl;
18851883
enum qeth_ipa_sbp_cmd setcmd;
18861884

18871885
QETH_CARD_TEXT(card, 2, "brsetrol");
18881886
switch (role) {
18891887
case QETH_SBP_ROLE_NONE:
18901888
setcmd = IPA_SBP_RESET_BRIDGE_PORT_ROLE;
1891-
cmdlength = sizeof(struct qeth_ipacmd_sbp_hdr) +
1892-
sizeof(struct qeth_sbp_reset_role);
1889+
cmdlength = sizeof(struct qeth_sbp_reset_role);
18931890
break;
18941891
case QETH_SBP_ROLE_PRIMARY:
18951892
setcmd = IPA_SBP_SET_PRIMARY_BRIDGE_PORT;
1896-
cmdlength = sizeof(struct qeth_ipacmd_sbp_hdr) +
1897-
sizeof(struct qeth_sbp_set_primary);
1893+
cmdlength = sizeof(struct qeth_sbp_set_primary);
18981894
break;
18991895
case QETH_SBP_ROLE_SECONDARY:
19001896
setcmd = IPA_SBP_SET_SECONDARY_BRIDGE_PORT;
1901-
cmdlength = sizeof(struct qeth_ipacmd_sbp_hdr) +
1902-
sizeof(struct qeth_sbp_set_secondary);
1897+
cmdlength = sizeof(struct qeth_sbp_set_secondary);
19031898
break;
19041899
default:
19051900
return -EINVAL;
19061901
}
19071902
if (!(card->options.sbp.supported_funcs & setcmd))
19081903
return -EOPNOTSUPP;
1909-
iob = qeth_get_ipacmd_buffer(card, ipa_cmd_sbp(card), 0);
1904+
iob = qeth_sbp_build_cmd(card, setcmd, cmdlength);
19101905
if (!iob)
19111906
return -ENOMEM;
1912-
cmd = (struct qeth_ipa_cmd *)(iob->data+IPA_PDU_HEADER_SIZE);
1913-
cmd->data.sbp.hdr.cmdlength = cmdlength;
1914-
cmd->data.sbp.hdr.command_code = setcmd;
1915-
cmd->data.sbp.hdr.used_total = 1;
1916-
cmd->data.sbp.hdr.seq_no = 1;
19171907
rc = qeth_send_ipa_cmd(card, iob, qeth_bridgeport_set_cb,
19181908
(void *)&cbctl);
19191909
if (rc < 0)

0 commit comments

Comments
 (0)