Skip to content

Commit 95d0c42

Browse files
committed
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 fixes from Martin Schwidefsky: "A couple of bug fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390: add CPU_BIG_ENDIAN config option s390/spinlock: avoid yield to non existent cpu s390/dcssblk: fix possible deadlock in remove vs. per-device attributes s390/seccomp: include generic seccomp header file s390/pci: add extra padding to function measurement block s390/scm_blk: fix deadlock for requests != REQ_TYPE_FS
2 parents c3b46c7 + 2fd9227 commit 95d0c42

File tree

6 files changed

+12
-4
lines changed

6 files changed

+12
-4
lines changed

arch/s390/Kconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ config MMU
44
config ZONE_DMA
55
def_bool y
66

7+
config CPU_BIG_ENDIAN
8+
def_bool y
9+
710
config LOCKDEP_SUPPORT
811
def_bool y
912

arch/s390/include/asm/pci.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ struct zpci_fmb {
4444
u64 rpcit_ops;
4545
u64 dma_rbytes;
4646
u64 dma_wbytes;
47-
} __packed __aligned(64);
47+
u64 pad[2];
48+
} __packed __aligned(128);
4849

4950
enum zpci_state {
5051
ZPCI_FN_STATE_RESERVED,

arch/s390/include/asm/seccomp.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,6 @@
1313
#define __NR_seccomp_exit_32 __NR_exit
1414
#define __NR_seccomp_sigreturn_32 __NR_sigreturn
1515

16+
#include <asm-generic/seccomp.h>
17+
1618
#endif /* _ASM_S390_SECCOMP_H */

arch/s390/lib/spinlock.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ void arch_spin_lock_wait_flags(arch_spinlock_t *lp, unsigned long flags)
105105
if (_raw_compare_and_swap(&lp->lock, 0, cpu))
106106
return;
107107
local_irq_restore(flags);
108+
continue;
108109
}
109110
/* Check if the lock owner is running. */
110111
if (first_diag && cpu_is_preempted(~owner)) {

drivers/s390/block/dcssblk.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -756,15 +756,16 @@ dcssblk_remove_store(struct device *dev, struct device_attribute *attr, const ch
756756
blk_cleanup_queue(dev_info->dcssblk_queue);
757757
dev_info->gd->queue = NULL;
758758
put_disk(dev_info->gd);
759-
device_unregister(&dev_info->dev);
760759

761760
/* unload all related segments */
762761
list_for_each_entry(entry, &dev_info->seg_list, lh)
763762
segment_unload(entry->segment_name);
764763

765-
put_device(&dev_info->dev);
766764
up_write(&dcssblk_devices_sem);
767765

766+
device_unregister(&dev_info->dev);
767+
put_device(&dev_info->dev);
768+
768769
rc = count;
769770
out_buf:
770771
kfree(local_buf);

drivers/s390/block/scm_blk.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ static void scm_blk_request(struct request_queue *rq)
303303
if (req->cmd_type != REQ_TYPE_FS) {
304304
blk_start_request(req);
305305
blk_dump_rq_flags(req, KMSG_COMPONENT " bad request");
306-
blk_end_request_all(req, -EIO);
306+
__blk_end_request_all(req, -EIO);
307307
continue;
308308
}
309309

0 commit comments

Comments
 (0)