Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95d0c427 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
parents c3b46c73 2fd92273
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -4,6 +4,9 @@ config MMU
config ZONE_DMA
	def_bool y

config CPU_BIG_ENDIAN
	def_bool y

config LOCKDEP_SUPPORT
	def_bool y

+2 −1
Original line number Diff line number Diff line
@@ -44,7 +44,8 @@ struct zpci_fmb {
	u64 rpcit_ops;
	u64 dma_rbytes;
	u64 dma_wbytes;
} __packed __aligned(64);
	u64 pad[2];
} __packed __aligned(128);

enum zpci_state {
	ZPCI_FN_STATE_RESERVED,
+2 −0
Original line number Diff line number Diff line
@@ -13,4 +13,6 @@
#define __NR_seccomp_exit_32	__NR_exit
#define __NR_seccomp_sigreturn_32 __NR_sigreturn

#include <asm-generic/seccomp.h>

#endif	/* _ASM_S390_SECCOMP_H */
+1 −0
Original line number Diff line number Diff line
@@ -105,6 +105,7 @@ void arch_spin_lock_wait_flags(arch_spinlock_t *lp, unsigned long flags)
			if (_raw_compare_and_swap(&lp->lock, 0, cpu))
				return;
			local_irq_restore(flags);
			continue;
		}
		/* Check if the lock owner is running. */
		if (first_diag && cpu_is_preempted(~owner)) {
+3 −2
Original line number Diff line number Diff line
@@ -756,15 +756,16 @@ dcssblk_remove_store(struct device *dev, struct device_attribute *attr, const ch
	blk_cleanup_queue(dev_info->dcssblk_queue);
	dev_info->gd->queue = NULL;
	put_disk(dev_info->gd);
	device_unregister(&dev_info->dev);

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

	put_device(&dev_info->dev);
	up_write(&dcssblk_devices_sem);

	device_unregister(&dev_info->dev);
	put_device(&dev_info->dev);

	rc = count;
out_buf:
	kfree(local_buf);
Loading