diff options
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/block/dasd_devmap.c | 2 | ||||
-rw-r--r-- | drivers/s390/char/vmlogrdr.c | 1 | ||||
-rw-r--r-- | drivers/s390/net/qeth_core.h | 1 | ||||
-rw-r--r-- | drivers/s390/net/qeth_core_main.c | 16 | ||||
-rw-r--r-- | drivers/s390/net/qeth_l2_sys.c | 7 | ||||
-rw-r--r-- | drivers/s390/net/qeth_l3_main.c | 2 |
6 files changed, 19 insertions, 10 deletions
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c index 2ead7e78c456..14ba80bfa571 100644 --- a/drivers/s390/block/dasd_devmap.c +++ b/drivers/s390/block/dasd_devmap.c | |||
@@ -77,7 +77,7 @@ EXPORT_SYMBOL_GPL(dasd_nofcx); | |||
77 | * strings when running as a module. | 77 | * strings when running as a module. |
78 | */ | 78 | */ |
79 | static char *dasd[256]; | 79 | static char *dasd[256]; |
80 | module_param_array(dasd, charp, NULL, 0); | 80 | module_param_array(dasd, charp, NULL, S_IRUGO); |
81 | 81 | ||
82 | /* | 82 | /* |
83 | * Single spinlock to protect devmap and servermap structures and lists. | 83 | * Single spinlock to protect devmap and servermap structures and lists. |
diff --git a/drivers/s390/char/vmlogrdr.c b/drivers/s390/char/vmlogrdr.c index a8848db7b09d..9bb48d70957c 100644 --- a/drivers/s390/char/vmlogrdr.c +++ b/drivers/s390/char/vmlogrdr.c | |||
@@ -338,7 +338,6 @@ static int vmlogrdr_open (struct inode *inode, struct file *filp) | |||
338 | 338 | ||
339 | /* set the file options */ | 339 | /* set the file options */ |
340 | filp->private_data = logptr; | 340 | filp->private_data = logptr; |
341 | filp->f_op = &vmlogrdr_fops; | ||
342 | 341 | ||
343 | /* start recording for this service*/ | 342 | /* start recording for this service*/ |
344 | if (logptr->autorecording) { | 343 | if (logptr->autorecording) { |
diff --git a/drivers/s390/net/qeth_core.h b/drivers/s390/net/qeth_core.h index 97ef37b51068..e7646ce3d659 100644 --- a/drivers/s390/net/qeth_core.h +++ b/drivers/s390/net/qeth_core.h | |||
@@ -889,6 +889,7 @@ extern const struct attribute_group *qeth_generic_attr_groups[]; | |||
889 | extern const struct attribute_group *qeth_osn_attr_groups[]; | 889 | extern const struct attribute_group *qeth_osn_attr_groups[]; |
890 | extern struct workqueue_struct *qeth_wq; | 890 | extern struct workqueue_struct *qeth_wq; |
891 | 891 | ||
892 | int qeth_card_hw_is_reachable(struct qeth_card *); | ||
892 | const char *qeth_get_cardname_short(struct qeth_card *); | 893 | const char *qeth_get_cardname_short(struct qeth_card *); |
893 | int qeth_realloc_buffer_pool(struct qeth_card *, int); | 894 | int qeth_realloc_buffer_pool(struct qeth_card *, int); |
894 | int qeth_core_load_discipline(struct qeth_card *, enum qeth_discipline_id); | 895 | int qeth_core_load_discipline(struct qeth_card *, enum qeth_discipline_id); |
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c index c0d6ba8655c7..fd22c811cbe1 100644 --- a/drivers/s390/net/qeth_core_main.c +++ b/drivers/s390/net/qeth_core_main.c | |||
@@ -73,6 +73,13 @@ static int qeth_init_qdio_out_buf(struct qeth_qdio_out_q *, int); | |||
73 | struct workqueue_struct *qeth_wq; | 73 | struct workqueue_struct *qeth_wq; |
74 | EXPORT_SYMBOL_GPL(qeth_wq); | 74 | EXPORT_SYMBOL_GPL(qeth_wq); |
75 | 75 | ||
76 | int qeth_card_hw_is_reachable(struct qeth_card *card) | ||
77 | { | ||
78 | return (card->state == CARD_STATE_SOFTSETUP) || | ||
79 | (card->state == CARD_STATE_UP); | ||
80 | } | ||
81 | EXPORT_SYMBOL_GPL(qeth_card_hw_is_reachable); | ||
82 | |||
76 | static void qeth_close_dev_handler(struct work_struct *work) | 83 | static void qeth_close_dev_handler(struct work_struct *work) |
77 | { | 84 | { |
78 | struct qeth_card *card; | 85 | struct qeth_card *card; |
@@ -5790,6 +5797,7 @@ int qeth_core_ethtool_get_settings(struct net_device *netdev, | |||
5790 | struct qeth_card *card = netdev->ml_priv; | 5797 | struct qeth_card *card = netdev->ml_priv; |
5791 | enum qeth_link_types link_type; | 5798 | enum qeth_link_types link_type; |
5792 | struct carrier_info carrier_info; | 5799 | struct carrier_info carrier_info; |
5800 | int rc; | ||
5793 | u32 speed; | 5801 | u32 speed; |
5794 | 5802 | ||
5795 | if ((card->info.type == QETH_CARD_TYPE_IQD) || (card->info.guestlan)) | 5803 | if ((card->info.type == QETH_CARD_TYPE_IQD) || (card->info.guestlan)) |
@@ -5832,8 +5840,14 @@ int qeth_core_ethtool_get_settings(struct net_device *netdev, | |||
5832 | /* Check if we can obtain more accurate information. */ | 5840 | /* Check if we can obtain more accurate information. */ |
5833 | /* If QUERY_CARD_INFO command is not supported or fails, */ | 5841 | /* If QUERY_CARD_INFO command is not supported or fails, */ |
5834 | /* just return the heuristics that was filled above. */ | 5842 | /* just return the heuristics that was filled above. */ |
5835 | if (qeth_query_card_info(card, &carrier_info) != 0) | 5843 | if (!qeth_card_hw_is_reachable(card)) |
5844 | return -ENODEV; | ||
5845 | rc = qeth_query_card_info(card, &carrier_info); | ||
5846 | if (rc == -EOPNOTSUPP) /* for old hardware, return heuristic */ | ||
5836 | return 0; | 5847 | return 0; |
5848 | if (rc) /* report error from the hardware operation */ | ||
5849 | return rc; | ||
5850 | /* on success, fill in the information got from the hardware */ | ||
5837 | 5851 | ||
5838 | netdev_dbg(netdev, | 5852 | netdev_dbg(netdev, |
5839 | "card info: card_type=0x%02x, port_mode=0x%04x, port_speed=0x%08x\n", | 5853 | "card info: card_type=0x%02x, port_mode=0x%04x, port_speed=0x%08x\n", |
diff --git a/drivers/s390/net/qeth_l2_sys.c b/drivers/s390/net/qeth_l2_sys.c index ae1bc04b8653..59e3aa538b4d 100644 --- a/drivers/s390/net/qeth_l2_sys.c +++ b/drivers/s390/net/qeth_l2_sys.c | |||
@@ -5,17 +5,12 @@ | |||
5 | 5 | ||
6 | #include <linux/slab.h> | 6 | #include <linux/slab.h> |
7 | #include <asm/ebcdic.h> | 7 | #include <asm/ebcdic.h> |
8 | #include "qeth_core.h" | ||
8 | #include "qeth_l2.h" | 9 | #include "qeth_l2.h" |
9 | 10 | ||
10 | #define QETH_DEVICE_ATTR(_id, _name, _mode, _show, _store) \ | 11 | #define QETH_DEVICE_ATTR(_id, _name, _mode, _show, _store) \ |
11 | struct device_attribute dev_attr_##_id = __ATTR(_name, _mode, _show, _store) | 12 | struct device_attribute dev_attr_##_id = __ATTR(_name, _mode, _show, _store) |
12 | 13 | ||
13 | static int qeth_card_hw_is_reachable(struct qeth_card *card) | ||
14 | { | ||
15 | return (card->state == CARD_STATE_SOFTSETUP) || | ||
16 | (card->state == CARD_STATE_UP); | ||
17 | } | ||
18 | |||
19 | static ssize_t qeth_bridge_port_role_state_show(struct device *dev, | 14 | static ssize_t qeth_bridge_port_role_state_show(struct device *dev, |
20 | struct device_attribute *attr, char *buf, | 15 | struct device_attribute *attr, char *buf, |
21 | int show_state) | 16 | int show_state) |
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c index f8427a2c4840..afebb9709763 100644 --- a/drivers/s390/net/qeth_l3_main.c +++ b/drivers/s390/net/qeth_l3_main.c | |||
@@ -3306,7 +3306,7 @@ static int qeth_l3_setup_netdev(struct qeth_card *card) | |||
3306 | card->dev->features |= NETIF_F_HW_VLAN_CTAG_TX | | 3306 | card->dev->features |= NETIF_F_HW_VLAN_CTAG_TX | |
3307 | NETIF_F_HW_VLAN_CTAG_RX | | 3307 | NETIF_F_HW_VLAN_CTAG_RX | |
3308 | NETIF_F_HW_VLAN_CTAG_FILTER; | 3308 | NETIF_F_HW_VLAN_CTAG_FILTER; |
3309 | card->dev->priv_flags &= ~IFF_XMIT_DST_RELEASE; | 3309 | netif_keep_dst(card->dev); |
3310 | card->dev->gso_max_size = 15 * PAGE_SIZE; | 3310 | card->dev->gso_max_size = 15 * PAGE_SIZE; |
3311 | 3311 | ||
3312 | SET_NETDEV_DEV(card->dev, &card->gdev->dev); | 3312 | SET_NETDEV_DEV(card->dev, &card->gdev->dev); |