diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-13 17:20:19 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-13 17:20:19 -0500 |
commit | c7708fac5a878d6e0f2de0aa19f9749cff4f707f (patch) | |
tree | 21a59cbe503ca526697f7d0bce5e0e30980bcbc0 /drivers/s390/block/dasd_devmap.c | |
parent | 3127f23f013eabe9b58132c05061684c49146ba3 (diff) | |
parent | 6726a807c38d7fd09bc23a0adc738efec6ff9492 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 update from Martin Schwidefsky:
"Add support to generate code for the latest machine zEC12, MOD and XOR
instruction support for the BPF jit compiler, the dasd safe offline
feature and the big one: the s390 architecture gets PCI support!!
Right before the world ends on the 21st ;-)"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (41 commits)
s390/qdio: rename the misleading PCI flag of qdio devices
s390/pci: remove obsolete email addresses
s390/pci: speed up __iowrite64_copy by using pci store block insn
s390/pci: enable NEED_DMA_MAP_STATE
s390/pci: no msleep in potential IRQ context
s390/pci: fix potential NULL pointer dereference in dma_free_seg_table()
s390/pci: use kmem_cache_zalloc instead of kmem_cache_alloc/memset
s390/bpf,jit: add support for XOR instruction
s390/bpf,jit: add support MOD instruction
s390/cio: fix pgid reserved check
vga: compile fix, disable vga for s390
s390/pci: add PCI Kconfig options
s390/pci: s390 specific PCI sysfs attributes
s390/pci: PCI hotplug support via SCLP
s390/pci: CHSC PCI support for error and availability events
s390/pci: DMA support
s390/pci: PCI adapter interrupts for MSI/MSI-X
s390/bitops: find leftmost bit instruction support
s390/pci: CLP interface
s390/pci: base support
...
Diffstat (limited to 'drivers/s390/block/dasd_devmap.c')
-rw-r--r-- | drivers/s390/block/dasd_devmap.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c index 20cfd028edcf..c196827c228f 100644 --- a/drivers/s390/block/dasd_devmap.c +++ b/drivers/s390/block/dasd_devmap.c | |||
@@ -952,6 +952,39 @@ static DEVICE_ATTR(raw_track_access, 0644, dasd_use_raw_show, | |||
952 | dasd_use_raw_store); | 952 | dasd_use_raw_store); |
953 | 953 | ||
954 | static ssize_t | 954 | static ssize_t |
955 | dasd_safe_offline_store(struct device *dev, struct device_attribute *attr, | ||
956 | const char *buf, size_t count) | ||
957 | { | ||
958 | struct ccw_device *cdev = to_ccwdev(dev); | ||
959 | struct dasd_device *device; | ||
960 | int rc; | ||
961 | |||
962 | device = dasd_device_from_cdev(cdev); | ||
963 | if (IS_ERR(device)) { | ||
964 | rc = PTR_ERR(device); | ||
965 | goto out; | ||
966 | } | ||
967 | |||
968 | if (test_bit(DASD_FLAG_OFFLINE, &device->flags) || | ||
969 | test_bit(DASD_FLAG_SAFE_OFFLINE_RUNNING, &device->flags)) { | ||
970 | /* Already doing offline processing */ | ||
971 | dasd_put_device(device); | ||
972 | rc = -EBUSY; | ||
973 | goto out; | ||
974 | } | ||
975 | |||
976 | set_bit(DASD_FLAG_SAFE_OFFLINE, &device->flags); | ||
977 | dasd_put_device(device); | ||
978 | |||
979 | rc = ccw_device_set_offline(cdev); | ||
980 | |||
981 | out: | ||
982 | return rc ? rc : count; | ||
983 | } | ||
984 | |||
985 | static DEVICE_ATTR(safe_offline, 0200, NULL, dasd_safe_offline_store); | ||
986 | |||
987 | static ssize_t | ||
955 | dasd_discipline_show(struct device *dev, struct device_attribute *attr, | 988 | dasd_discipline_show(struct device *dev, struct device_attribute *attr, |
956 | char *buf) | 989 | char *buf) |
957 | { | 990 | { |
@@ -1320,6 +1353,7 @@ static struct attribute * dasd_attrs[] = { | |||
1320 | &dev_attr_expires.attr, | 1353 | &dev_attr_expires.attr, |
1321 | &dev_attr_reservation_policy.attr, | 1354 | &dev_attr_reservation_policy.attr, |
1322 | &dev_attr_last_known_reservation_state.attr, | 1355 | &dev_attr_last_known_reservation_state.attr, |
1356 | &dev_attr_safe_offline.attr, | ||
1323 | NULL, | 1357 | NULL, |
1324 | }; | 1358 | }; |
1325 | 1359 | ||