Commit 49cc91f9 authored by David S. Miller's avatar David S. Miller

Merge branch 's390-next'

Frank Blaschka says:

====================
s390: network patches for net-next

looks like there was a problem with my previous posting. Hope this time
it will work. Sorry for any inconvenience. The patches are mostly
cleanups and small enhancements for net-next
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 1f3c2eba 652d77ba
...@@ -71,7 +71,7 @@ config CLAW ...@@ -71,7 +71,7 @@ config CLAW
config QETH config QETH
def_tristate y def_tristate y
prompt "Gigabit Ethernet device support" prompt "Gigabit Ethernet device support"
depends on CCW && NETDEVICES && IP_MULTICAST && QDIO depends on CCW && NETDEVICES && IP_MULTICAST && QDIO && ETHERNET
help help
This driver supports the IBM System z OSA Express adapters This driver supports the IBM System z OSA Express adapters
in QDIO mode (all media types), HiperSockets interfaces and z/VM in QDIO mode (all media types), HiperSockets interfaces and z/VM
......
...@@ -44,8 +44,8 @@ static ssize_t ctcm_buffer_write(struct device *dev, ...@@ -44,8 +44,8 @@ static ssize_t ctcm_buffer_write(struct device *dev,
return -ENODEV; return -ENODEV;
} }
rc = sscanf(buf, "%u", &bs1); rc = kstrtouint(buf, 0, &bs1);
if (rc != 1) if (rc)
goto einval; goto einval;
if (bs1 > CTCM_BUFSIZE_LIMIT) if (bs1 > CTCM_BUFSIZE_LIMIT)
goto einval; goto einval;
...@@ -151,8 +151,8 @@ static ssize_t ctcm_proto_store(struct device *dev, ...@@ -151,8 +151,8 @@ static ssize_t ctcm_proto_store(struct device *dev,
if (!priv) if (!priv)
return -ENODEV; return -ENODEV;
rc = sscanf(buf, "%d", &value); rc = kstrtoint(buf, 0, &value);
if ((rc != 1) || if (rc ||
!((value == CTCM_PROTO_S390) || !((value == CTCM_PROTO_S390) ||
(value == CTCM_PROTO_LINUX) || (value == CTCM_PROTO_LINUX) ||
(value == CTCM_PROTO_MPC) || (value == CTCM_PROTO_MPC) ||
......
...@@ -1943,15 +1943,16 @@ static ssize_t ...@@ -1943,15 +1943,16 @@ static ssize_t
lcs_portno_store (struct device *dev, struct device_attribute *attr, const char *buf, size_t count) lcs_portno_store (struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
{ {
struct lcs_card *card; struct lcs_card *card;
int value, rc; int rc;
s16 value;
card = dev_get_drvdata(dev); card = dev_get_drvdata(dev);
if (!card) if (!card)
return 0; return 0;
rc = sscanf(buf, "%d", &value); rc = kstrtos16(buf, 0, &value);
if (rc != 1) if (rc)
return -EINVAL; return -EINVAL;
/* TODO: sanity checks */ /* TODO: sanity checks */
card->portno = value; card->portno = value;
...@@ -2007,8 +2008,8 @@ lcs_timeout_store (struct device *dev, struct device_attribute *attr, const char ...@@ -2007,8 +2008,8 @@ lcs_timeout_store (struct device *dev, struct device_attribute *attr, const char
if (!card) if (!card)
return 0; return 0;
rc = sscanf(buf, "%u", &value); rc = kstrtouint(buf, 0, &value);
if (rc != 1) if (rc)
return -EINVAL; return -EINVAL;
/* TODO: sanity checks */ /* TODO: sanity checks */
card->lancmd_timeout = value; card->lancmd_timeout = value;
......
...@@ -380,11 +380,6 @@ enum qeth_header_ids { ...@@ -380,11 +380,6 @@ enum qeth_header_ids {
#define QETH_HDR_EXT_CSUM_TRANSP_REQ 0x20 #define QETH_HDR_EXT_CSUM_TRANSP_REQ 0x20
#define QETH_HDR_EXT_UDP 0x40 /*bit off for TCP*/ #define QETH_HDR_EXT_UDP 0x40 /*bit off for TCP*/
static inline int qeth_is_last_sbale(struct qdio_buffer_element *sbale)
{
return (sbale->eflags & SBAL_EFLAGS_LAST_ENTRY);
}
enum qeth_qdio_buffer_states { enum qeth_qdio_buffer_states {
/* /*
* inbound: read out by driver; owned by hardware in order to be filled * inbound: read out by driver; owned by hardware in order to be filled
...@@ -843,13 +838,6 @@ struct qeth_trap_id { ...@@ -843,13 +838,6 @@ struct qeth_trap_id {
/*some helper functions*/ /*some helper functions*/
#define QETH_CARD_IFNAME(card) (((card)->dev)? (card)->dev->name : "") #define QETH_CARD_IFNAME(card) (((card)->dev)? (card)->dev->name : "")
static inline struct qeth_card *CARD_FROM_CDEV(struct ccw_device *cdev)
{
struct qeth_card *card = dev_get_drvdata(&((struct ccwgroup_device *)
dev_get_drvdata(&cdev->dev))->dev);
return card;
}
static inline int qeth_get_micros(void) static inline int qeth_get_micros(void)
{ {
return (int) (get_tod_clock() >> 12); return (int) (get_tod_clock() >> 12);
...@@ -894,7 +882,6 @@ const char *qeth_get_cardname_short(struct qeth_card *); ...@@ -894,7 +882,6 @@ const char *qeth_get_cardname_short(struct qeth_card *);
int qeth_realloc_buffer_pool(struct qeth_card *, int); int qeth_realloc_buffer_pool(struct qeth_card *, int);
int qeth_core_load_discipline(struct qeth_card *, enum qeth_discipline_id); int qeth_core_load_discipline(struct qeth_card *, enum qeth_discipline_id);
void qeth_core_free_discipline(struct qeth_card *); void qeth_core_free_discipline(struct qeth_card *);
void qeth_buffer_reclaim_work(struct work_struct *);
/* exports for qeth discipline device drivers */ /* exports for qeth discipline device drivers */
extern struct qeth_card_list_struct qeth_core_card_list; extern struct qeth_card_list_struct qeth_core_card_list;
...@@ -913,7 +900,6 @@ int qeth_core_hardsetup_card(struct qeth_card *); ...@@ -913,7 +900,6 @@ int qeth_core_hardsetup_card(struct qeth_card *);
void qeth_print_status_message(struct qeth_card *); void qeth_print_status_message(struct qeth_card *);
int qeth_init_qdio_queues(struct qeth_card *); int qeth_init_qdio_queues(struct qeth_card *);
int qeth_send_startlan(struct qeth_card *); int qeth_send_startlan(struct qeth_card *);
int qeth_send_stoplan(struct qeth_card *);
int qeth_send_ipa_cmd(struct qeth_card *, struct qeth_cmd_buffer *, int qeth_send_ipa_cmd(struct qeth_card *, struct qeth_cmd_buffer *,
int (*reply_cb) int (*reply_cb)
(struct qeth_card *, struct qeth_reply *, unsigned long), (struct qeth_card *, struct qeth_reply *, unsigned long),
...@@ -954,8 +940,6 @@ int qeth_snmp_command(struct qeth_card *, char __user *); ...@@ -954,8 +940,6 @@ int qeth_snmp_command(struct qeth_card *, char __user *);
int qeth_query_oat_command(struct qeth_card *, char __user *); int qeth_query_oat_command(struct qeth_card *, char __user *);
int qeth_query_switch_attributes(struct qeth_card *card, int qeth_query_switch_attributes(struct qeth_card *card,
struct qeth_switch_info *sw_info); struct qeth_switch_info *sw_info);
int qeth_query_card_info(struct qeth_card *card,
struct carrier_info *carrier_info);
int qeth_send_control_data(struct qeth_card *, int, struct qeth_cmd_buffer *, int qeth_send_control_data(struct qeth_card *, int, struct qeth_cmd_buffer *,
int (*reply_cb)(struct qeth_card *, struct qeth_reply*, unsigned long), int (*reply_cb)(struct qeth_card *, struct qeth_reply*, unsigned long),
void *reply_param); void *reply_param);
......
...@@ -718,6 +718,13 @@ static int qeth_check_idx_response(struct qeth_card *card, ...@@ -718,6 +718,13 @@ static int qeth_check_idx_response(struct qeth_card *card,
return 0; return 0;
} }
static struct qeth_card *CARD_FROM_CDEV(struct ccw_device *cdev)
{
struct qeth_card *card = dev_get_drvdata(&((struct ccwgroup_device *)
dev_get_drvdata(&cdev->dev))->dev);
return card;
}
static void qeth_setup_ccw(struct qeth_channel *channel, unsigned char *iob, static void qeth_setup_ccw(struct qeth_channel *channel, unsigned char *iob,
__u32 len) __u32 len)
{ {
...@@ -1431,6 +1438,7 @@ static void qeth_start_kernel_thread(struct work_struct *work) ...@@ -1431,6 +1438,7 @@ static void qeth_start_kernel_thread(struct work_struct *work)
} }
} }
static void qeth_buffer_reclaim_work(struct work_struct *);
static int qeth_setup_card(struct qeth_card *card) static int qeth_setup_card(struct qeth_card *card)
{ {
...@@ -3232,7 +3240,7 @@ int qeth_check_qdio_errors(struct qeth_card *card, struct qdio_buffer *buf, ...@@ -3232,7 +3240,7 @@ int qeth_check_qdio_errors(struct qeth_card *card, struct qdio_buffer *buf,
} }
EXPORT_SYMBOL_GPL(qeth_check_qdio_errors); EXPORT_SYMBOL_GPL(qeth_check_qdio_errors);
void qeth_buffer_reclaim_work(struct work_struct *work) static void qeth_buffer_reclaim_work(struct work_struct *work)
{ {
struct qeth_card *card = container_of(work, struct qeth_card, struct qeth_card *card = container_of(work, struct qeth_card,
buffer_reclaim_work.work); buffer_reclaim_work.work);
...@@ -4126,7 +4134,7 @@ static int qeth_setadp_promisc_mode_cb(struct qeth_card *card, ...@@ -4126,7 +4134,7 @@ static int qeth_setadp_promisc_mode_cb(struct qeth_card *card,
qeth_default_setadapterparms_cb(card, reply, (unsigned long)cmd); qeth_default_setadapterparms_cb(card, reply, (unsigned long)cmd);
if (cmd->hdr.return_code) { if (cmd->hdr.return_code) {
QETH_CARD_TEXT_(card, 4, "prmrc%2.2x", cmd->hdr.return_code); QETH_CARD_TEXT_(card, 4, "prmrc%x", cmd->hdr.return_code);
setparms->data.mode = SET_PROMISC_MODE_OFF; setparms->data.mode = SET_PROMISC_MODE_OFF;
} }
card->info.promisc_mode = setparms->data.mode; card->info.promisc_mode = setparms->data.mode;
...@@ -4493,13 +4501,13 @@ static int qeth_snmp_command_cb(struct qeth_card *card, ...@@ -4493,13 +4501,13 @@ static int qeth_snmp_command_cb(struct qeth_card *card,
snmp = &cmd->data.setadapterparms.data.snmp; snmp = &cmd->data.setadapterparms.data.snmp;
if (cmd->hdr.return_code) { if (cmd->hdr.return_code) {
QETH_CARD_TEXT_(card, 4, "scer1%i", cmd->hdr.return_code); QETH_CARD_TEXT_(card, 4, "scer1%x", cmd->hdr.return_code);
return 0; return 0;
} }
if (cmd->data.setadapterparms.hdr.return_code) { if (cmd->data.setadapterparms.hdr.return_code) {
cmd->hdr.return_code = cmd->hdr.return_code =
cmd->data.setadapterparms.hdr.return_code; cmd->data.setadapterparms.hdr.return_code;
QETH_CARD_TEXT_(card, 4, "scer2%i", cmd->hdr.return_code); QETH_CARD_TEXT_(card, 4, "scer2%x", cmd->hdr.return_code);
return 0; return 0;
} }
data_len = *((__u16 *)QETH_IPA_PDU_LEN_PDU1(data)); data_len = *((__u16 *)QETH_IPA_PDU_LEN_PDU1(data));
...@@ -4717,7 +4725,7 @@ static int qeth_query_card_info_cb(struct qeth_card *card, ...@@ -4717,7 +4725,7 @@ static int qeth_query_card_info_cb(struct qeth_card *card,
return 0; return 0;
} }
int qeth_query_card_info(struct qeth_card *card, static int qeth_query_card_info(struct qeth_card *card,
struct carrier_info *carrier_info) struct carrier_info *carrier_info)
{ {
struct qeth_cmd_buffer *iob; struct qeth_cmd_buffer *iob;
...@@ -4730,7 +4738,6 @@ int qeth_query_card_info(struct qeth_card *card, ...@@ -4730,7 +4738,6 @@ int qeth_query_card_info(struct qeth_card *card,
return qeth_send_ipa_cmd(card, iob, qeth_query_card_info_cb, return qeth_send_ipa_cmd(card, iob, qeth_query_card_info_cb,
(void *)carrier_info); (void *)carrier_info);
} }
EXPORT_SYMBOL_GPL(qeth_query_card_info);
static inline int qeth_get_qdio_q_format(struct qeth_card *card) static inline int qeth_get_qdio_q_format(struct qeth_card *card)
{ {
...@@ -5113,6 +5120,11 @@ static inline int qeth_create_skb_frag(struct qeth_qdio_buffer *qethbuffer, ...@@ -5113,6 +5120,11 @@ static inline int qeth_create_skb_frag(struct qeth_qdio_buffer *qethbuffer,
return 0; return 0;
} }
static inline int qeth_is_last_sbale(struct qdio_buffer_element *sbale)
{
return (sbale->eflags & SBAL_EFLAGS_LAST_ENTRY);
}
struct sk_buff *qeth_core_get_next_skb(struct qeth_card *card, struct sk_buff *qeth_core_get_next_skb(struct qeth_card *card,
struct qeth_qdio_buffer *qethbuffer, struct qeth_qdio_buffer *qethbuffer,
struct qdio_buffer_element **__element, int *__offset, struct qdio_buffer_element **__element, int *__offset,
......
...@@ -1512,7 +1512,7 @@ static void qeth_bridge_state_change(struct qeth_card *card, ...@@ -1512,7 +1512,7 @@ static void qeth_bridge_state_change(struct qeth_card *card,
QETH_CARD_TEXT(card, 2, "brstchng"); QETH_CARD_TEXT(card, 2, "brstchng");
if (qports->entry_length != sizeof(struct qeth_sbp_port_entry)) { if (qports->entry_length != sizeof(struct qeth_sbp_port_entry)) {
QETH_CARD_TEXT_(card, 2, "BPsz%.8d", qports->entry_length); QETH_CARD_TEXT_(card, 2, "BPsz%04x", qports->entry_length);
return; return;
} }
extrasize = sizeof(struct qeth_sbp_port_entry) * qports->num_entries; extrasize = sizeof(struct qeth_sbp_port_entry) * qports->num_entries;
......
...@@ -42,10 +42,6 @@ struct qeth_ipato_entry { ...@@ -42,10 +42,6 @@ struct qeth_ipato_entry {
}; };
void qeth_l3_ipaddr4_to_string(const __u8 *, char *);
int qeth_l3_string_to_ipaddr4(const char *, __u8 *);
void qeth_l3_ipaddr6_to_string(const __u8 *, char *);
int qeth_l3_string_to_ipaddr6(const char *, __u8 *);
void qeth_l3_ipaddr_to_string(enum qeth_prot_versions, const __u8 *, char *); void qeth_l3_ipaddr_to_string(enum qeth_prot_versions, const __u8 *, char *);
int qeth_l3_string_to_ipaddr(const char *, enum qeth_prot_versions, __u8 *); int qeth_l3_string_to_ipaddr(const char *, enum qeth_prot_versions, __u8 *);
int qeth_l3_create_device_attributes(struct device *); int qeth_l3_create_device_attributes(struct device *);
......
...@@ -55,12 +55,12 @@ static int qeth_l3_isxdigit(char *buf) ...@@ -55,12 +55,12 @@ static int qeth_l3_isxdigit(char *buf)
return 1; return 1;
} }
void qeth_l3_ipaddr4_to_string(const __u8 *addr, char *buf) static void qeth_l3_ipaddr4_to_string(const __u8 *addr, char *buf)
{ {
sprintf(buf, "%i.%i.%i.%i", addr[0], addr[1], addr[2], addr[3]); sprintf(buf, "%i.%i.%i.%i", addr[0], addr[1], addr[2], addr[3]);
} }
int qeth_l3_string_to_ipaddr4(const char *buf, __u8 *addr) static int qeth_l3_string_to_ipaddr4(const char *buf, __u8 *addr)
{ {
int count = 0, rc = 0; int count = 0, rc = 0;
unsigned int in[4]; unsigned int in[4];
...@@ -78,12 +78,12 @@ int qeth_l3_string_to_ipaddr4(const char *buf, __u8 *addr) ...@@ -78,12 +78,12 @@ int qeth_l3_string_to_ipaddr4(const char *buf, __u8 *addr)
return 0; return 0;
} }
void qeth_l3_ipaddr6_to_string(const __u8 *addr, char *buf) static void qeth_l3_ipaddr6_to_string(const __u8 *addr, char *buf)
{ {
sprintf(buf, "%pI6", addr); sprintf(buf, "%pI6", addr);
} }
int qeth_l3_string_to_ipaddr6(const char *buf, __u8 *addr) static int qeth_l3_string_to_ipaddr6(const char *buf, __u8 *addr)
{ {
const char *end, *end_tmp, *start; const char *end, *end_tmp, *start;
__u16 *in; __u16 *in;
...@@ -2502,7 +2502,7 @@ static int qeth_l3_arp_query(struct qeth_card *card, char __user *udata) ...@@ -2502,7 +2502,7 @@ static int qeth_l3_arp_query(struct qeth_card *card, char __user *udata)
rc = -EFAULT; rc = -EFAULT;
goto free_and_out; goto free_and_out;
} }
QETH_CARD_TEXT_(card, 4, "qacts"); QETH_CARD_TEXT(card, 4, "qacts");
} }
free_and_out: free_and_out:
kfree(qinfo.udata); kfree(qinfo.udata);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment