Commit 591dd4c1 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 's390-5.6-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull s390 fixes from Vasily Gorbik:

 - Remove ieee_emulation_warnings sysctl which is a dead code.

 - Avoid triggering rebuild of the kernel during make install.

 - Enable protected virtualization guest support in default configs.

 - Fix cio_ignore seq_file .next function to increase position index.
   And use kobj_to_dev instead of container_of in cio code.

 - Fix storage block address lists to contain absolute addresses in qdio
   code.

 - Few clang warnings and spelling fixes.

* tag 's390-5.6-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/qdio: fill SBALEs with absolute addresses
  s390/qdio: fill SL with absolute addresses
  s390: remove obsolete ieee_emulation_warnings
  s390: make 'install' not depend on vmlinux
  s390/kaslr: Fix casts in get_random
  s390/mm: Explicitly compare PAGE_DEFAULT_KEY against zero in storage_key_init_range
  s390/pkey/zcrypt: spelling s/crytp/crypt/
  s390/cio: use kobj_to_dev() API
  s390/defconfig: enable CONFIG_PROTECTED_VIRTUALIZATION_GUEST
  s390/cio: cio_ignore_proc_seq_next should increase position index
parents 54dedb5b 2db01da8
...@@ -146,7 +146,7 @@ all: bzImage ...@@ -146,7 +146,7 @@ all: bzImage
#KBUILD_IMAGE is necessary for packaging targets like rpm-pkg, deb-pkg... #KBUILD_IMAGE is necessary for packaging targets like rpm-pkg, deb-pkg...
KBUILD_IMAGE := $(boot)/bzImage KBUILD_IMAGE := $(boot)/bzImage
install: vmlinux install:
$(Q)$(MAKE) $(build)=$(boot) $@ $(Q)$(MAKE) $(build)=$(boot) $@
bzImage: vmlinux bzImage: vmlinux
......
...@@ -70,7 +70,7 @@ $(obj)/compressed/vmlinux: $(obj)/startup.a FORCE ...@@ -70,7 +70,7 @@ $(obj)/compressed/vmlinux: $(obj)/startup.a FORCE
$(obj)/startup.a: $(OBJECTS) FORCE $(obj)/startup.a: $(OBJECTS) FORCE
$(call if_changed,ar) $(call if_changed,ar)
install: $(CONFIGURE) $(obj)/bzImage install:
sh -x $(srctree)/$(obj)/install.sh $(KERNELRELEASE) $(obj)/bzImage \ sh -x $(srctree)/$(obj)/install.sh $(KERNELRELEASE) $(obj)/bzImage \
System.map "$(INSTALL_PATH)" System.map "$(INSTALL_PATH)"
......
...@@ -75,7 +75,7 @@ static unsigned long get_random(unsigned long limit) ...@@ -75,7 +75,7 @@ static unsigned long get_random(unsigned long limit)
*(unsigned long *) prng.parm_block ^= seed; *(unsigned long *) prng.parm_block ^= seed;
for (i = 0; i < 16; i++) { for (i = 0; i < 16; i++) {
cpacf_kmc(CPACF_KMC_PRNG, prng.parm_block, cpacf_kmc(CPACF_KMC_PRNG, prng.parm_block,
(char *) entropy, (char *) entropy, (u8 *) entropy, (u8 *) entropy,
sizeof(entropy)); sizeof(entropy));
memcpy(prng.parm_block, entropy, sizeof(entropy)); memcpy(prng.parm_block, entropy, sizeof(entropy));
} }
......
...@@ -53,6 +53,7 @@ CONFIG_VFIO_AP=m ...@@ -53,6 +53,7 @@ CONFIG_VFIO_AP=m
CONFIG_CRASH_DUMP=y CONFIG_CRASH_DUMP=y
CONFIG_HIBERNATION=y CONFIG_HIBERNATION=y
CONFIG_PM_DEBUG=y CONFIG_PM_DEBUG=y
CONFIG_PROTECTED_VIRTUALIZATION_GUEST=y
CONFIG_CMM=m CONFIG_CMM=m
CONFIG_APPLDATA_BASE=y CONFIG_APPLDATA_BASE=y
CONFIG_KVM=m CONFIG_KVM=m
...@@ -474,7 +475,6 @@ CONFIG_NLMON=m ...@@ -474,7 +475,6 @@ CONFIG_NLMON=m
# CONFIG_NET_VENDOR_EMULEX is not set # CONFIG_NET_VENDOR_EMULEX is not set
# CONFIG_NET_VENDOR_EZCHIP is not set # CONFIG_NET_VENDOR_EZCHIP is not set
# CONFIG_NET_VENDOR_GOOGLE is not set # CONFIG_NET_VENDOR_GOOGLE is not set
# CONFIG_NET_VENDOR_HP is not set
# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_HUAWEI is not set
# CONFIG_NET_VENDOR_INTEL is not set # CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_NET_VENDOR_MARVELL is not set # CONFIG_NET_VENDOR_MARVELL is not set
...@@ -684,7 +684,6 @@ CONFIG_CRYPTO_ADIANTUM=m ...@@ -684,7 +684,6 @@ CONFIG_CRYPTO_ADIANTUM=m
CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_VMAC=m CONFIG_CRYPTO_VMAC=m
CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_XXHASH=m
CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD128=m
CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD160=m
...@@ -748,7 +747,6 @@ CONFIG_DEBUG_INFO_DWARF4=y ...@@ -748,7 +747,6 @@ CONFIG_DEBUG_INFO_DWARF4=y
CONFIG_GDB_SCRIPTS=y CONFIG_GDB_SCRIPTS=y
CONFIG_FRAME_WARN=1024 CONFIG_FRAME_WARN=1024
CONFIG_HEADERS_INSTALL=y CONFIG_HEADERS_INSTALL=y
CONFIG_HEADERS_CHECK=y
CONFIG_DEBUG_SECTION_MISMATCH=y CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_PAGEALLOC=y CONFIG_DEBUG_PAGEALLOC=y
...@@ -772,9 +770,9 @@ CONFIG_DEBUG_MEMORY_INIT=y ...@@ -772,9 +770,9 @@ CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
CONFIG_DEBUG_PER_CPU_MAPS=y CONFIG_DEBUG_PER_CPU_MAPS=y
CONFIG_DEBUG_SHIRQ=y CONFIG_DEBUG_SHIRQ=y
CONFIG_PANIC_ON_OOPS=y
CONFIG_DETECT_HUNG_TASK=y CONFIG_DETECT_HUNG_TASK=y
CONFIG_WQ_WATCHDOG=y CONFIG_WQ_WATCHDOG=y
CONFIG_PANIC_ON_OOPS=y
CONFIG_DEBUG_TIMEKEEPING=y CONFIG_DEBUG_TIMEKEEPING=y
CONFIG_PROVE_LOCKING=y CONFIG_PROVE_LOCKING=y
CONFIG_LOCK_STAT=y CONFIG_LOCK_STAT=y
...@@ -783,9 +781,20 @@ CONFIG_DEBUG_ATOMIC_SLEEP=y ...@@ -783,9 +781,20 @@ CONFIG_DEBUG_ATOMIC_SLEEP=y
CONFIG_DEBUG_LOCKING_API_SELFTESTS=y CONFIG_DEBUG_LOCKING_API_SELFTESTS=y
CONFIG_DEBUG_SG=y CONFIG_DEBUG_SG=y
CONFIG_DEBUG_NOTIFIERS=y CONFIG_DEBUG_NOTIFIERS=y
CONFIG_BUG_ON_DATA_CORRUPTION=y
CONFIG_DEBUG_CREDENTIALS=y CONFIG_DEBUG_CREDENTIALS=y
CONFIG_RCU_TORTURE_TEST=m CONFIG_RCU_TORTURE_TEST=m
CONFIG_RCU_CPU_STALL_TIMEOUT=300 CONFIG_RCU_CPU_STALL_TIMEOUT=300
CONFIG_LATENCYTOP=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_STACK_TRACER=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_PREEMPT_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_HIST_TRIGGERS=y
CONFIG_S390_PTDUMP=y
CONFIG_NOTIFIER_ERROR_INJECTION=m CONFIG_NOTIFIER_ERROR_INJECTION=m
CONFIG_NETDEV_NOTIFIER_ERROR_INJECT=m CONFIG_NETDEV_NOTIFIER_ERROR_INJECT=m
CONFIG_FAULT_INJECTION=y CONFIG_FAULT_INJECTION=y
...@@ -796,15 +805,6 @@ CONFIG_FAIL_IO_TIMEOUT=y ...@@ -796,15 +805,6 @@ CONFIG_FAIL_IO_TIMEOUT=y
CONFIG_FAIL_FUTEX=y CONFIG_FAIL_FUTEX=y
CONFIG_FAULT_INJECTION_DEBUG_FS=y CONFIG_FAULT_INJECTION_DEBUG_FS=y
CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
CONFIG_LATENCYTOP=y
CONFIG_IRQSOFF_TRACER=y
CONFIG_PREEMPT_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_HIST_TRIGGERS=y
CONFIG_LKDTM=m CONFIG_LKDTM=m
CONFIG_TEST_LIST_SORT=y CONFIG_TEST_LIST_SORT=y
CONFIG_TEST_SORT=y CONFIG_TEST_SORT=y
...@@ -814,5 +814,3 @@ CONFIG_INTERVAL_TREE_TEST=m ...@@ -814,5 +814,3 @@ CONFIG_INTERVAL_TREE_TEST=m
CONFIG_PERCPU_TEST=m CONFIG_PERCPU_TEST=m
CONFIG_ATOMIC64_SELFTEST=y CONFIG_ATOMIC64_SELFTEST=y
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
CONFIG_BUG_ON_DATA_CORRUPTION=y
CONFIG_S390_PTDUMP=y
...@@ -53,6 +53,7 @@ CONFIG_VFIO_AP=m ...@@ -53,6 +53,7 @@ CONFIG_VFIO_AP=m
CONFIG_CRASH_DUMP=y CONFIG_CRASH_DUMP=y
CONFIG_HIBERNATION=y CONFIG_HIBERNATION=y
CONFIG_PM_DEBUG=y CONFIG_PM_DEBUG=y
CONFIG_PROTECTED_VIRTUALIZATION_GUEST=y
CONFIG_CMM=m CONFIG_CMM=m
CONFIG_APPLDATA_BASE=y CONFIG_APPLDATA_BASE=y
CONFIG_KVM=m CONFIG_KVM=m
...@@ -470,7 +471,6 @@ CONFIG_NLMON=m ...@@ -470,7 +471,6 @@ CONFIG_NLMON=m
# CONFIG_NET_VENDOR_EMULEX is not set # CONFIG_NET_VENDOR_EMULEX is not set
# CONFIG_NET_VENDOR_EZCHIP is not set # CONFIG_NET_VENDOR_EZCHIP is not set
# CONFIG_NET_VENDOR_GOOGLE is not set # CONFIG_NET_VENDOR_GOOGLE is not set
# CONFIG_NET_VENDOR_HP is not set
# CONFIG_NET_VENDOR_HUAWEI is not set # CONFIG_NET_VENDOR_HUAWEI is not set
# CONFIG_NET_VENDOR_INTEL is not set # CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_NET_VENDOR_MARVELL is not set # CONFIG_NET_VENDOR_MARVELL is not set
...@@ -677,7 +677,6 @@ CONFIG_CRYPTO_ADIANTUM=m ...@@ -677,7 +677,6 @@ CONFIG_CRYPTO_ADIANTUM=m
CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_VMAC=m CONFIG_CRYPTO_VMAC=m
CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_XXHASH=m
CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_RMD128=m CONFIG_CRYPTO_RMD128=m
CONFIG_CRYPTO_RMD160=m CONFIG_CRYPTO_RMD160=m
...@@ -739,18 +738,18 @@ CONFIG_DEBUG_SECTION_MISMATCH=y ...@@ -739,18 +738,18 @@ CONFIG_DEBUG_SECTION_MISMATCH=y
CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_MEMORY_INIT=y CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_PANIC_ON_OOPS=y CONFIG_PANIC_ON_OOPS=y
CONFIG_BUG_ON_DATA_CORRUPTION=y
CONFIG_RCU_TORTURE_TEST=m CONFIG_RCU_TORTURE_TEST=m
CONFIG_RCU_CPU_STALL_TIMEOUT=60 CONFIG_RCU_CPU_STALL_TIMEOUT=60
CONFIG_LATENCYTOP=y CONFIG_LATENCYTOP=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_STACK_TRACER=y
CONFIG_SCHED_TRACER=y CONFIG_SCHED_TRACER=y
CONFIG_FTRACE_SYSCALLS=y CONFIG_FTRACE_SYSCALLS=y
CONFIG_STACK_TRACER=y
CONFIG_BLK_DEV_IO_TRACE=y CONFIG_BLK_DEV_IO_TRACE=y
CONFIG_FUNCTION_PROFILER=y
CONFIG_HIST_TRIGGERS=y CONFIG_HIST_TRIGGERS=y
CONFIG_S390_PTDUMP=y
CONFIG_LKDTM=m CONFIG_LKDTM=m
CONFIG_PERCPU_TEST=m CONFIG_PERCPU_TEST=m
CONFIG_ATOMIC64_SELFTEST=y CONFIG_ATOMIC64_SELFTEST=y
CONFIG_TEST_BPF=m CONFIG_TEST_BPF=m
CONFIG_BUG_ON_DATA_CORRUPTION=y
CONFIG_S390_PTDUMP=y
...@@ -42,7 +42,7 @@ void __storage_key_init_range(unsigned long start, unsigned long end); ...@@ -42,7 +42,7 @@ void __storage_key_init_range(unsigned long start, unsigned long end);
static inline void storage_key_init_range(unsigned long start, unsigned long end) static inline void storage_key_init_range(unsigned long start, unsigned long end)
{ {
if (PAGE_DEFAULT_KEY) if (PAGE_DEFAULT_KEY != 0)
__storage_key_init_range(start, end); __storage_key_init_range(start, end);
} }
......
...@@ -84,7 +84,6 @@ void s390_update_cpu_mhz(void); ...@@ -84,7 +84,6 @@ void s390_update_cpu_mhz(void);
void cpu_detect_mhz_feature(void); void cpu_detect_mhz_feature(void);
extern const struct seq_operations cpuinfo_op; extern const struct seq_operations cpuinfo_op;
extern int sysctl_ieee_emulation_warnings;
extern void execve_tail(void); extern void execve_tail(void);
extern void __bpon(void); extern void __bpon(void);
......
...@@ -201,7 +201,7 @@ struct slib { ...@@ -201,7 +201,7 @@ struct slib {
* @scount: SBAL count * @scount: SBAL count
* @sflags: whole SBAL flags * @sflags: whole SBAL flags
* @length: length * @length: length
* @addr: address * @addr: absolute data address
*/ */
struct qdio_buffer_element { struct qdio_buffer_element {
u8 eflags; u8 eflags;
...@@ -211,7 +211,7 @@ struct qdio_buffer_element { ...@@ -211,7 +211,7 @@ struct qdio_buffer_element {
u8 scount; u8 scount;
u8 sflags; u8 sflags;
u32 length; u32 length;
void *addr; u64 addr;
} __attribute__ ((packed, aligned(16))); } __attribute__ ((packed, aligned(16)));
/** /**
...@@ -227,7 +227,7 @@ struct qdio_buffer { ...@@ -227,7 +227,7 @@ struct qdio_buffer {
* @sbal: absolute SBAL address * @sbal: absolute SBAL address
*/ */
struct sl_element { struct sl_element {
unsigned long sbal; u64 sbal;
} __attribute__ ((packed)); } __attribute__ ((packed));
/** /**
......
...@@ -303,8 +303,10 @@ static void * ...@@ -303,8 +303,10 @@ static void *
cio_ignore_proc_seq_next(struct seq_file *s, void *it, loff_t *offset) cio_ignore_proc_seq_next(struct seq_file *s, void *it, loff_t *offset)
{ {
struct ccwdev_iter *iter; struct ccwdev_iter *iter;
loff_t p = *offset;
if (*offset >= (__MAX_SUBCHANNEL + 1) * (__MAX_SSID + 1)) (*offset)++;
if (p >= (__MAX_SUBCHANNEL + 1) * (__MAX_SSID + 1))
return NULL; return NULL;
iter = it; iter = it;
if (iter->devno == __MAX_SUBCHANNEL) { if (iter->devno == __MAX_SUBCHANNEL) {
...@@ -314,7 +316,6 @@ cio_ignore_proc_seq_next(struct seq_file *s, void *it, loff_t *offset) ...@@ -314,7 +316,6 @@ cio_ignore_proc_seq_next(struct seq_file *s, void *it, loff_t *offset)
return NULL; return NULL;
} else } else
iter->devno++; iter->devno++;
(*offset)++;
return iter; return iter;
} }
......
...@@ -135,7 +135,7 @@ static ssize_t chp_measurement_chars_read(struct file *filp, ...@@ -135,7 +135,7 @@ static ssize_t chp_measurement_chars_read(struct file *filp,
struct channel_path *chp; struct channel_path *chp;
struct device *device; struct device *device;
device = container_of(kobj, struct device, kobj); device = kobj_to_dev(kobj);
chp = to_channelpath(device); chp = to_channelpath(device);
if (chp->cmg == -1) if (chp->cmg == -1)
return 0; return 0;
...@@ -184,7 +184,7 @@ static ssize_t chp_measurement_read(struct file *filp, struct kobject *kobj, ...@@ -184,7 +184,7 @@ static ssize_t chp_measurement_read(struct file *filp, struct kobject *kobj,
struct device *device; struct device *device;
unsigned int size; unsigned int size;
device = container_of(kobj, struct device, kobj); device = kobj_to_dev(kobj);
chp = to_channelpath(device); chp = to_channelpath(device);
css = to_css(chp->dev.parent); css = to_css(chp->dev.parent);
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/export.h> #include <linux/export.h>
#include <linux/io.h>
#include <asm/qdio.h> #include <asm/qdio.h>
#include "cio.h" #include "cio.h"
...@@ -205,7 +206,7 @@ static void setup_storage_lists(struct qdio_q *q, struct qdio_irq *irq_ptr, ...@@ -205,7 +206,7 @@ static void setup_storage_lists(struct qdio_q *q, struct qdio_irq *irq_ptr,
/* fill in sl */ /* fill in sl */
for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; j++) for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; j++)
q->sl->element[j].sbal = (unsigned long)q->sbal[j]; q->sl->element[j].sbal = virt_to_phys(q->sbal[j]);
} }
static void setup_queues(struct qdio_irq *irq_ptr, static void setup_queues(struct qdio_irq *irq_ptr,
......
...@@ -887,7 +887,7 @@ static int ep11_unwrapkey(u16 card, u16 domain, ...@@ -887,7 +887,7 @@ static int ep11_unwrapkey(u16 card, u16 domain,
/* empty pin tag */ /* empty pin tag */
*p++ = 0x04; *p++ = 0x04;
*p++ = 0; *p++ = 0;
/* encrytped key value tag and bytes */ /* encrypted key value tag and bytes */
p += asn1tag_write(p, 0x04, enckey, enckeysize); p += asn1tag_write(p, 0x04, enckey, enckeysize);
/* reply cprb and payload */ /* reply cprb and payload */
...@@ -1095,7 +1095,7 @@ int ep11_clr2keyblob(u16 card, u16 domain, u32 keybitsize, u32 keygenflags, ...@@ -1095,7 +1095,7 @@ int ep11_clr2keyblob(u16 card, u16 domain, u32 keybitsize, u32 keygenflags,
/* Step 1: generate AES 256 bit random kek key */ /* Step 1: generate AES 256 bit random kek key */
rc = ep11_genaeskey(card, domain, 256, rc = ep11_genaeskey(card, domain, 256,
0x00006c00, /* EN/DECRYTP, WRAP/UNWRAP */ 0x00006c00, /* EN/DECRYPT, WRAP/UNWRAP */
kek, &keklen); kek, &keklen);
if (rc) { if (rc) {
DEBUG_ERR( DEBUG_ERR(
......
...@@ -1128,9 +1128,10 @@ static void qeth_clear_output_buffer(struct qeth_qdio_out_q *queue, ...@@ -1128,9 +1128,10 @@ static void qeth_clear_output_buffer(struct qeth_qdio_out_q *queue,
qeth_tx_complete_buf(buf, error, budget); qeth_tx_complete_buf(buf, error, budget);
for (i = 0; i < queue->max_elements; ++i) { for (i = 0; i < queue->max_elements; ++i) {
if (buf->buffer->element[i].addr && buf->is_header[i]) void *data = phys_to_virt(buf->buffer->element[i].addr);
kmem_cache_free(qeth_core_header_cache,
buf->buffer->element[i].addr); if (data && buf->is_header[i])
kmem_cache_free(qeth_core_header_cache, data);
buf->is_header[i] = 0; buf->is_header[i] = 0;
} }
...@@ -2641,7 +2642,8 @@ static int qeth_init_input_buffer(struct qeth_card *card, ...@@ -2641,7 +2642,8 @@ static int qeth_init_input_buffer(struct qeth_card *card,
buf->pool_entry = pool_entry; buf->pool_entry = pool_entry;
for (i = 0; i < QETH_MAX_BUFFER_ELEMENTS(card); ++i) { for (i = 0; i < QETH_MAX_BUFFER_ELEMENTS(card); ++i) {
buf->buffer->element[i].length = PAGE_SIZE; buf->buffer->element[i].length = PAGE_SIZE;
buf->buffer->element[i].addr = pool_entry->elements[i]; buf->buffer->element[i].addr =
virt_to_phys(pool_entry->elements[i]);
if (i == QETH_MAX_BUFFER_ELEMENTS(card) - 1) if (i == QETH_MAX_BUFFER_ELEMENTS(card) - 1)
buf->buffer->element[i].eflags = SBAL_EFLAGS_LAST_ENTRY; buf->buffer->element[i].eflags = SBAL_EFLAGS_LAST_ENTRY;
else else
...@@ -3459,9 +3461,8 @@ static void qeth_qdio_cq_handler(struct qeth_card *card, unsigned int qdio_err, ...@@ -3459,9 +3461,8 @@ static void qeth_qdio_cq_handler(struct qeth_card *card, unsigned int qdio_err,
while ((e < QDIO_MAX_ELEMENTS_PER_BUFFER) && while ((e < QDIO_MAX_ELEMENTS_PER_BUFFER) &&
buffer->element[e].addr) { buffer->element[e].addr) {
unsigned long phys_aob_addr; unsigned long phys_aob_addr = buffer->element[e].addr;
phys_aob_addr = (unsigned long) buffer->element[e].addr;
qeth_qdio_handle_aob(card, phys_aob_addr); qeth_qdio_handle_aob(card, phys_aob_addr);
++e; ++e;
} }
...@@ -3750,7 +3751,7 @@ static unsigned int __qeth_fill_buffer(struct sk_buff *skb, ...@@ -3750,7 +3751,7 @@ static unsigned int __qeth_fill_buffer(struct sk_buff *skb,
elem_length = min_t(unsigned int, length, elem_length = min_t(unsigned int, length,
PAGE_SIZE - offset_in_page(data)); PAGE_SIZE - offset_in_page(data));
buffer->element[element].addr = data; buffer->element[element].addr = virt_to_phys(data);
buffer->element[element].length = elem_length; buffer->element[element].length = elem_length;
length -= elem_length; length -= elem_length;
if (is_first_elem) { if (is_first_elem) {
...@@ -3780,7 +3781,7 @@ static unsigned int __qeth_fill_buffer(struct sk_buff *skb, ...@@ -3780,7 +3781,7 @@ static unsigned int __qeth_fill_buffer(struct sk_buff *skb,
elem_length = min_t(unsigned int, length, elem_length = min_t(unsigned int, length,
PAGE_SIZE - offset_in_page(data)); PAGE_SIZE - offset_in_page(data));
buffer->element[element].addr = data; buffer->element[element].addr = virt_to_phys(data);
buffer->element[element].length = elem_length; buffer->element[element].length = elem_length;
buffer->element[element].eflags = buffer->element[element].eflags =
SBAL_EFLAGS_MIDDLE_FRAG; SBAL_EFLAGS_MIDDLE_FRAG;
...@@ -3820,7 +3821,7 @@ static unsigned int qeth_fill_buffer(struct qeth_qdio_out_buffer *buf, ...@@ -3820,7 +3821,7 @@ static unsigned int qeth_fill_buffer(struct qeth_qdio_out_buffer *buf,
int element = buf->next_element_to_fill; int element = buf->next_element_to_fill;
is_first_elem = false; is_first_elem = false;
buffer->element[element].addr = hdr; buffer->element[element].addr = virt_to_phys(hdr);
buffer->element[element].length = hd_len; buffer->element[element].length = hd_len;
buffer->element[element].eflags = SBAL_EFLAGS_FIRST_FRAG; buffer->element[element].eflags = SBAL_EFLAGS_FIRST_FRAG;
/* remember to free cache-allocated qeth_hdr: */ /* remember to free cache-allocated qeth_hdr: */
...@@ -4746,10 +4747,10 @@ static void qeth_qdio_establish_cq(struct qeth_card *card, ...@@ -4746,10 +4747,10 @@ static void qeth_qdio_establish_cq(struct qeth_card *card,
if (card->options.cq == QETH_CQ_ENABLED) { if (card->options.cq == QETH_CQ_ENABLED) {
int offset = QDIO_MAX_BUFFERS_PER_Q * int offset = QDIO_MAX_BUFFERS_PER_Q *
(card->qdio.no_in_queues - 1); (card->qdio.no_in_queues - 1);
for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; ++i) {
in_sbal_ptrs[offset + i] = (struct qdio_buffer *) for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; i++)
virt_to_phys(card->qdio.c_q->bufs[i].buffer); in_sbal_ptrs[offset + i] =
} card->qdio.c_q->bufs[i].buffer;
queue_start_poll[card->qdio.no_in_queues - 1] = NULL; queue_start_poll[card->qdio.no_in_queues - 1] = NULL;
} }
...@@ -4783,10 +4784,9 @@ static int qeth_qdio_establish(struct qeth_card *card) ...@@ -4783,10 +4784,9 @@ static int qeth_qdio_establish(struct qeth_card *card)
rc = -ENOMEM; rc = -ENOMEM;
goto out_free_qib_param; goto out_free_qib_param;
} }
for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; ++i) {
in_sbal_ptrs[i] = (struct qdio_buffer *) for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; i++)
virt_to_phys(card->qdio.in_q->bufs[i].buffer); in_sbal_ptrs[i] = card->qdio.in_q->bufs[i].buffer;
}
queue_start_poll = kcalloc(card->qdio.no_in_queues, sizeof(void *), queue_start_poll = kcalloc(card->qdio.no_in_queues, sizeof(void *),
GFP_KERNEL); GFP_KERNEL);
...@@ -4807,11 +4807,11 @@ static int qeth_qdio_establish(struct qeth_card *card) ...@@ -4807,11 +4807,11 @@ static int qeth_qdio_establish(struct qeth_card *card)
rc = -ENOMEM; rc = -ENOMEM;
goto out_free_queue_start_poll; goto out_free_queue_start_poll;
} }
for (i = 0, k = 0; i < card->qdio.no_out_queues; ++i) for (i = 0, k = 0; i < card->qdio.no_out_queues; ++i)
for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; ++j, ++k) { for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; j++, k++)
out_sbal_ptrs[k] = (struct qdio_buffer *)virt_to_phys( out_sbal_ptrs[k] =
card->qdio.out_qs[i]->bufs[j]->buffer); card->qdio.out_qs[i]->bufs[j]->buffer;
}
memset(&init_data, 0, sizeof(struct qdio_initialize)); memset(&init_data, 0, sizeof(struct qdio_initialize));
init_data.cdev = CARD_DDEV(card); init_data.cdev = CARD_DDEV(card);
...@@ -5289,7 +5289,7 @@ static int qeth_extract_skb(struct qeth_card *card, ...@@ -5289,7 +5289,7 @@ static int qeth_extract_skb(struct qeth_card *card,
offset = 0; offset = 0;
} }
hdr = element->addr + offset; hdr = phys_to_virt(element->addr) + offset;
offset += sizeof(*hdr); offset += sizeof(*hdr);
skb = NULL; skb = NULL;
...@@ -5388,7 +5388,7 @@ static int qeth_extract_skb(struct qeth_card *card, ...@@ -5388,7 +5388,7 @@ static int qeth_extract_skb(struct qeth_card *card,
walk_packet: walk_packet:
while (skb_len) { while (skb_len) {
int data_len = min(skb_len, (int)(element->length - offset)); int data_len = min(skb_len, (int)(element->length - offset));
char *data = element->addr + offset; char *data = phys_to_virt(element->addr) + offset;
skb_len -= data_len; skb_len -= data_len;
offset += data_len; offset += data_len;
......
...@@ -2510,7 +2510,7 @@ void zfcp_fsf_reqid_check(struct zfcp_qdio *qdio, int sbal_idx) ...@@ -2510,7 +2510,7 @@ void zfcp_fsf_reqid_check(struct zfcp_qdio *qdio, int sbal_idx)
for (idx = 0; idx < QDIO_MAX_ELEMENTS_PER_BUFFER; idx++) { for (idx = 0; idx < QDIO_MAX_ELEMENTS_PER_BUFFER; idx++) {
sbale = &sbal->element[idx]; sbale = &sbal->element[idx];
req_id = (unsigned long) sbale->addr; req_id = sbale->addr;
fsf_req = zfcp_reqlist_find_rm(adapter->req_list, req_id); fsf_req = zfcp_reqlist_find_rm(adapter->req_list, req_id);
if (!fsf_req) { if (!fsf_req) {
......
...@@ -98,7 +98,7 @@ static void zfcp_qdio_int_resp(struct ccw_device *cdev, unsigned int qdio_err, ...@@ -98,7 +98,7 @@ static void zfcp_qdio_int_resp(struct ccw_device *cdev, unsigned int qdio_err,
memset(pl, 0, memset(pl, 0,
ZFCP_QDIO_MAX_SBALS_PER_REQ * sizeof(void *)); ZFCP_QDIO_MAX_SBALS_PER_REQ * sizeof(void *));
sbale = qdio->res_q[idx]->element; sbale = qdio->res_q[idx]->element;
req_id = (u64) sbale->addr; req_id = sbale->addr;
scount = min(sbale->scount + 1, scount = min(sbale->scount + 1,
ZFCP_QDIO_MAX_SBALS_PER_REQ + 1); ZFCP_QDIO_MAX_SBALS_PER_REQ + 1);
/* incl. signaling SBAL */ /* incl. signaling SBAL */
...@@ -199,7 +199,7 @@ int zfcp_qdio_sbals_from_sg(struct zfcp_qdio *qdio, struct zfcp_qdio_req *q_req, ...@@ -199,7 +199,7 @@ int zfcp_qdio_sbals_from_sg(struct zfcp_qdio *qdio, struct zfcp_qdio_req *q_req,
q_req->sbal_number); q_req->sbal_number);
return -EINVAL; return -EINVAL;
} }
sbale->addr = sg_virt(sg); sbale->addr = sg_phys(sg);
sbale->length = sg->length; sbale->length = sg->length;
} }
return 0; return 0;
...@@ -418,7 +418,7 @@ int zfcp_qdio_open(struct zfcp_qdio *qdio) ...@@ -418,7 +418,7 @@ int zfcp_qdio_open(struct zfcp_qdio *qdio)
sbale->length = 0; sbale->length = 0;
sbale->eflags = SBAL_EFLAGS_LAST_ENTRY; sbale->eflags = SBAL_EFLAGS_LAST_ENTRY;
sbale->sflags = 0; sbale->sflags = 0;
sbale->addr = NULL; sbale->addr = 0;
} }
if (do_QDIO(cdev, QDIO_FLAG_SYNC_INPUT, 0, 0, QDIO_MAX_BUFFERS_PER_Q)) if (do_QDIO(cdev, QDIO_FLAG_SYNC_INPUT, 0, 0, QDIO_MAX_BUFFERS_PER_Q))
......
...@@ -122,14 +122,14 @@ void zfcp_qdio_req_init(struct zfcp_qdio *qdio, struct zfcp_qdio_req *q_req, ...@@ -122,14 +122,14 @@ void zfcp_qdio_req_init(struct zfcp_qdio *qdio, struct zfcp_qdio_req *q_req,
% QDIO_MAX_BUFFERS_PER_Q; % QDIO_MAX_BUFFERS_PER_Q;
sbale = zfcp_qdio_sbale_req(qdio, q_req); sbale = zfcp_qdio_sbale_req(qdio, q_req);
sbale->addr = (void *) req_id; sbale->addr = req_id;
sbale->eflags = 0; sbale->eflags = 0;
sbale->sflags = SBAL_SFLAGS0_COMMAND | sbtype; sbale->sflags = SBAL_SFLAGS0_COMMAND | sbtype;
if (unlikely(!data)) if (unlikely(!data))
return; return;
sbale++; sbale++;
sbale->addr = data; sbale->addr = virt_to_phys(data);
sbale->length = len; sbale->length = len;
} }
...@@ -152,7 +152,7 @@ void zfcp_qdio_fill_next(struct zfcp_qdio *qdio, struct zfcp_qdio_req *q_req, ...@@ -152,7 +152,7 @@ void zfcp_qdio_fill_next(struct zfcp_qdio *qdio, struct zfcp_qdio_req *q_req,
BUG_ON(q_req->sbale_curr == qdio->max_sbale_per_sbal - 1); BUG_ON(q_req->sbale_curr == qdio->max_sbale_per_sbal - 1);
q_req->sbale_curr++; q_req->sbale_curr++;
sbale = zfcp_qdio_sbale_curr(qdio, q_req); sbale = zfcp_qdio_sbale_curr(qdio, q_req);
sbale->addr = data; sbale->addr = virt_to_phys(data);
sbale->length = len; sbale->length = len;
} }
......
...@@ -805,15 +805,6 @@ static struct ctl_table kern_table[] = { ...@@ -805,15 +805,6 @@ static struct ctl_table kern_table[] = {
.extra2 = &maxolduid, .extra2 = &maxolduid,
}, },
#ifdef CONFIG_S390 #ifdef CONFIG_S390
#ifdef CONFIG_MATHEMU
{
.procname = "ieee_emulation_warnings",
.data = &sysctl_ieee_emulation_warnings,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec,
},
#endif
{ {
.procname = "userprocess_debug", .procname = "userprocess_debug",
.data = &show_unhandled_signals, .data = &show_unhandled_signals,
......
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