Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

+64 -75
+1 -1
arch/s390/Makefile
··· 146 146 #KBUILD_IMAGE is necessary for packaging targets like rpm-pkg, deb-pkg... 147 147 KBUILD_IMAGE := $(boot)/bzImage 148 148 149 - install: vmlinux 149 + install: 150 150 $(Q)$(MAKE) $(build)=$(boot) $@ 151 151 152 152 bzImage: vmlinux
+1 -1
arch/s390/boot/Makefile
··· 70 70 $(obj)/startup.a: $(OBJECTS) FORCE 71 71 $(call if_changed,ar) 72 72 73 - install: $(CONFIGURE) $(obj)/bzImage 73 + install: 74 74 sh -x $(srctree)/$(obj)/install.sh $(KERNELRELEASE) $(obj)/bzImage \ 75 75 System.map "$(INSTALL_PATH)" 76 76
+1 -1
arch/s390/boot/kaslr.c
··· 75 75 *(unsigned long *) prng.parm_block ^= seed; 76 76 for (i = 0; i < 16; i++) { 77 77 cpacf_kmc(CPACF_KMC_PRNG, prng.parm_block, 78 - (char *) entropy, (char *) entropy, 78 + (u8 *) entropy, (u8 *) entropy, 79 79 sizeof(entropy)); 80 80 memcpy(prng.parm_block, entropy, sizeof(entropy)); 81 81 }
+13 -15
arch/s390/configs/debug_defconfig
··· 53 53 CONFIG_CRASH_DUMP=y 54 54 CONFIG_HIBERNATION=y 55 55 CONFIG_PM_DEBUG=y 56 + CONFIG_PROTECTED_VIRTUALIZATION_GUEST=y 56 57 CONFIG_CMM=m 57 58 CONFIG_APPLDATA_BASE=y 58 59 CONFIG_KVM=m ··· 475 474 # CONFIG_NET_VENDOR_EMULEX is not set 476 475 # CONFIG_NET_VENDOR_EZCHIP is not set 477 476 # CONFIG_NET_VENDOR_GOOGLE is not set 478 - # CONFIG_NET_VENDOR_HP is not set 479 477 # CONFIG_NET_VENDOR_HUAWEI is not set 480 478 # CONFIG_NET_VENDOR_INTEL is not set 481 479 # CONFIG_NET_VENDOR_MARVELL is not set ··· 684 684 CONFIG_CRYPTO_XCBC=m 685 685 CONFIG_CRYPTO_VMAC=m 686 686 CONFIG_CRYPTO_CRC32=m 687 - CONFIG_CRYPTO_XXHASH=m 688 687 CONFIG_CRYPTO_MICHAEL_MIC=m 689 688 CONFIG_CRYPTO_RMD128=m 690 689 CONFIG_CRYPTO_RMD160=m ··· 747 748 CONFIG_GDB_SCRIPTS=y 748 749 CONFIG_FRAME_WARN=1024 749 750 CONFIG_HEADERS_INSTALL=y 750 - CONFIG_HEADERS_CHECK=y 751 751 CONFIG_DEBUG_SECTION_MISMATCH=y 752 752 CONFIG_MAGIC_SYSRQ=y 753 753 CONFIG_DEBUG_PAGEALLOC=y ··· 770 772 CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m 771 773 CONFIG_DEBUG_PER_CPU_MAPS=y 772 774 CONFIG_DEBUG_SHIRQ=y 775 + CONFIG_PANIC_ON_OOPS=y 773 776 CONFIG_DETECT_HUNG_TASK=y 774 777 CONFIG_WQ_WATCHDOG=y 775 - CONFIG_PANIC_ON_OOPS=y 776 778 CONFIG_DEBUG_TIMEKEEPING=y 777 779 CONFIG_PROVE_LOCKING=y 778 780 CONFIG_LOCK_STAT=y ··· 781 783 CONFIG_DEBUG_LOCKING_API_SELFTESTS=y 782 784 CONFIG_DEBUG_SG=y 783 785 CONFIG_DEBUG_NOTIFIERS=y 786 + CONFIG_BUG_ON_DATA_CORRUPTION=y 784 787 CONFIG_DEBUG_CREDENTIALS=y 785 788 CONFIG_RCU_TORTURE_TEST=m 786 789 CONFIG_RCU_CPU_STALL_TIMEOUT=300 790 + CONFIG_LATENCYTOP=y 791 + CONFIG_FUNCTION_PROFILER=y 792 + CONFIG_STACK_TRACER=y 793 + CONFIG_IRQSOFF_TRACER=y 794 + CONFIG_PREEMPT_TRACER=y 795 + CONFIG_SCHED_TRACER=y 796 + CONFIG_FTRACE_SYSCALLS=y 797 + CONFIG_BLK_DEV_IO_TRACE=y 798 + CONFIG_HIST_TRIGGERS=y 799 + CONFIG_S390_PTDUMP=y 787 800 CONFIG_NOTIFIER_ERROR_INJECTION=m 788 801 CONFIG_NETDEV_NOTIFIER_ERROR_INJECT=m 789 802 CONFIG_FAULT_INJECTION=y ··· 805 796 CONFIG_FAIL_FUTEX=y 806 797 CONFIG_FAULT_INJECTION_DEBUG_FS=y 807 798 CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y 808 - CONFIG_LATENCYTOP=y 809 - CONFIG_IRQSOFF_TRACER=y 810 - CONFIG_PREEMPT_TRACER=y 811 - CONFIG_SCHED_TRACER=y 812 - CONFIG_FTRACE_SYSCALLS=y 813 - CONFIG_STACK_TRACER=y 814 - CONFIG_BLK_DEV_IO_TRACE=y 815 - CONFIG_FUNCTION_PROFILER=y 816 - CONFIG_HIST_TRIGGERS=y 817 799 CONFIG_LKDTM=m 818 800 CONFIG_TEST_LIST_SORT=y 819 801 CONFIG_TEST_SORT=y ··· 814 814 CONFIG_PERCPU_TEST=m 815 815 CONFIG_ATOMIC64_SELFTEST=y 816 816 CONFIG_TEST_BPF=m 817 - CONFIG_BUG_ON_DATA_CORRUPTION=y 818 - CONFIG_S390_PTDUMP=y
+5 -6
arch/s390/configs/defconfig
··· 53 53 CONFIG_CRASH_DUMP=y 54 54 CONFIG_HIBERNATION=y 55 55 CONFIG_PM_DEBUG=y 56 + CONFIG_PROTECTED_VIRTUALIZATION_GUEST=y 56 57 CONFIG_CMM=m 57 58 CONFIG_APPLDATA_BASE=y 58 59 CONFIG_KVM=m ··· 471 470 # CONFIG_NET_VENDOR_EMULEX is not set 472 471 # CONFIG_NET_VENDOR_EZCHIP is not set 473 472 # CONFIG_NET_VENDOR_GOOGLE is not set 474 - # CONFIG_NET_VENDOR_HP is not set 475 473 # CONFIG_NET_VENDOR_HUAWEI is not set 476 474 # CONFIG_NET_VENDOR_INTEL is not set 477 475 # CONFIG_NET_VENDOR_MARVELL is not set ··· 677 677 CONFIG_CRYPTO_XCBC=m 678 678 CONFIG_CRYPTO_VMAC=m 679 679 CONFIG_CRYPTO_CRC32=m 680 - CONFIG_CRYPTO_XXHASH=m 681 680 CONFIG_CRYPTO_MICHAEL_MIC=m 682 681 CONFIG_CRYPTO_RMD128=m 683 682 CONFIG_CRYPTO_RMD160=m ··· 738 739 CONFIG_MAGIC_SYSRQ=y 739 740 CONFIG_DEBUG_MEMORY_INIT=y 740 741 CONFIG_PANIC_ON_OOPS=y 742 + CONFIG_BUG_ON_DATA_CORRUPTION=y 741 743 CONFIG_RCU_TORTURE_TEST=m 742 744 CONFIG_RCU_CPU_STALL_TIMEOUT=60 743 745 CONFIG_LATENCYTOP=y 746 + CONFIG_FUNCTION_PROFILER=y 747 + CONFIG_STACK_TRACER=y 744 748 CONFIG_SCHED_TRACER=y 745 749 CONFIG_FTRACE_SYSCALLS=y 746 - CONFIG_STACK_TRACER=y 747 750 CONFIG_BLK_DEV_IO_TRACE=y 748 - CONFIG_FUNCTION_PROFILER=y 749 751 CONFIG_HIST_TRIGGERS=y 752 + CONFIG_S390_PTDUMP=y 750 753 CONFIG_LKDTM=m 751 754 CONFIG_PERCPU_TEST=m 752 755 CONFIG_ATOMIC64_SELFTEST=y 753 756 CONFIG_TEST_BPF=m 754 - CONFIG_BUG_ON_DATA_CORRUPTION=y 755 - CONFIG_S390_PTDUMP=y
+1 -1
arch/s390/include/asm/page.h
··· 42 42 43 43 static inline void storage_key_init_range(unsigned long start, unsigned long end) 44 44 { 45 - if (PAGE_DEFAULT_KEY) 45 + if (PAGE_DEFAULT_KEY != 0) 46 46 __storage_key_init_range(start, end); 47 47 } 48 48
-1
arch/s390/include/asm/processor.h
··· 84 84 void cpu_detect_mhz_feature(void); 85 85 86 86 extern const struct seq_operations cpuinfo_op; 87 - extern int sysctl_ieee_emulation_warnings; 88 87 extern void execve_tail(void); 89 88 extern void __bpon(void); 90 89
+3 -3
arch/s390/include/asm/qdio.h
··· 201 201 * @scount: SBAL count 202 202 * @sflags: whole SBAL flags 203 203 * @length: length 204 - * @addr: address 204 + * @addr: absolute data address 205 205 */ 206 206 struct qdio_buffer_element { 207 207 u8 eflags; ··· 211 211 u8 scount; 212 212 u8 sflags; 213 213 u32 length; 214 - void *addr; 214 + u64 addr; 215 215 } __attribute__ ((packed, aligned(16))); 216 216 217 217 /** ··· 227 227 * @sbal: absolute SBAL address 228 228 */ 229 229 struct sl_element { 230 - unsigned long sbal; 230 + u64 sbal; 231 231 } __attribute__ ((packed)); 232 232 233 233 /**
+3 -2
drivers/s390/cio/blacklist.c
··· 303 303 cio_ignore_proc_seq_next(struct seq_file *s, void *it, loff_t *offset) 304 304 { 305 305 struct ccwdev_iter *iter; 306 + loff_t p = *offset; 306 307 307 - if (*offset >= (__MAX_SUBCHANNEL + 1) * (__MAX_SSID + 1)) 308 + (*offset)++; 309 + if (p >= (__MAX_SUBCHANNEL + 1) * (__MAX_SSID + 1)) 308 310 return NULL; 309 311 iter = it; 310 312 if (iter->devno == __MAX_SUBCHANNEL) { ··· 316 314 return NULL; 317 315 } else 318 316 iter->devno++; 319 - (*offset)++; 320 317 return iter; 321 318 } 322 319
+2 -2
drivers/s390/cio/chp.c
··· 135 135 struct channel_path *chp; 136 136 struct device *device; 137 137 138 - device = container_of(kobj, struct device, kobj); 138 + device = kobj_to_dev(kobj); 139 139 chp = to_channelpath(device); 140 140 if (chp->cmg == -1) 141 141 return 0; ··· 184 184 struct device *device; 185 185 unsigned int size; 186 186 187 - device = container_of(kobj, struct device, kobj); 187 + device = kobj_to_dev(kobj); 188 188 chp = to_channelpath(device); 189 189 css = to_css(chp->dev.parent); 190 190
+2 -1
drivers/s390/cio/qdio_setup.c
··· 8 8 #include <linux/kernel.h> 9 9 #include <linux/slab.h> 10 10 #include <linux/export.h> 11 + #include <linux/io.h> 11 12 #include <asm/qdio.h> 12 13 13 14 #include "cio.h" ··· 206 205 207 206 /* fill in sl */ 208 207 for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; j++) 209 - q->sl->element[j].sbal = (unsigned long)q->sbal[j]; 208 + q->sl->element[j].sbal = virt_to_phys(q->sbal[j]); 210 209 } 211 210 212 211 static void setup_queues(struct qdio_irq *irq_ptr,
+2 -2
drivers/s390/crypto/zcrypt_ep11misc.c
··· 887 887 /* empty pin tag */ 888 888 *p++ = 0x04; 889 889 *p++ = 0; 890 - /* encrytped key value tag and bytes */ 890 + /* encrypted key value tag and bytes */ 891 891 p += asn1tag_write(p, 0x04, enckey, enckeysize); 892 892 893 893 /* reply cprb and payload */ ··· 1095 1095 1096 1096 /* Step 1: generate AES 256 bit random kek key */ 1097 1097 rc = ep11_genaeskey(card, domain, 256, 1098 - 0x00006c00, /* EN/DECRYTP, WRAP/UNWRAP */ 1098 + 0x00006c00, /* EN/DECRYPT, WRAP/UNWRAP */ 1099 1099 kek, &keklen); 1100 1100 if (rc) { 1101 1101 DEBUG_ERR(
+23 -23
drivers/s390/net/qeth_core_main.c
··· 1128 1128 qeth_tx_complete_buf(buf, error, budget); 1129 1129 1130 1130 for (i = 0; i < queue->max_elements; ++i) { 1131 - if (buf->buffer->element[i].addr && buf->is_header[i]) 1132 - kmem_cache_free(qeth_core_header_cache, 1133 - buf->buffer->element[i].addr); 1131 + void *data = phys_to_virt(buf->buffer->element[i].addr); 1132 + 1133 + if (data && buf->is_header[i]) 1134 + kmem_cache_free(qeth_core_header_cache, data); 1134 1135 buf->is_header[i] = 0; 1135 1136 } 1136 1137 ··· 2642 2641 buf->pool_entry = pool_entry; 2643 2642 for (i = 0; i < QETH_MAX_BUFFER_ELEMENTS(card); ++i) { 2644 2643 buf->buffer->element[i].length = PAGE_SIZE; 2645 - buf->buffer->element[i].addr = pool_entry->elements[i]; 2644 + buf->buffer->element[i].addr = 2645 + virt_to_phys(pool_entry->elements[i]); 2646 2646 if (i == QETH_MAX_BUFFER_ELEMENTS(card) - 1) 2647 2647 buf->buffer->element[i].eflags = SBAL_EFLAGS_LAST_ENTRY; 2648 2648 else ··· 3461 3459 3462 3460 while ((e < QDIO_MAX_ELEMENTS_PER_BUFFER) && 3463 3461 buffer->element[e].addr) { 3464 - unsigned long phys_aob_addr; 3462 + unsigned long phys_aob_addr = buffer->element[e].addr; 3465 3463 3466 - phys_aob_addr = (unsigned long) buffer->element[e].addr; 3467 3464 qeth_qdio_handle_aob(card, phys_aob_addr); 3468 3465 ++e; 3469 3466 } ··· 3751 3750 elem_length = min_t(unsigned int, length, 3752 3751 PAGE_SIZE - offset_in_page(data)); 3753 3752 3754 - buffer->element[element].addr = data; 3753 + buffer->element[element].addr = virt_to_phys(data); 3755 3754 buffer->element[element].length = elem_length; 3756 3755 length -= elem_length; 3757 3756 if (is_first_elem) { ··· 3781 3780 elem_length = min_t(unsigned int, length, 3782 3781 PAGE_SIZE - offset_in_page(data)); 3783 3782 3784 - buffer->element[element].addr = data; 3783 + buffer->element[element].addr = virt_to_phys(data); 3785 3784 buffer->element[element].length = elem_length; 3786 3785 buffer->element[element].eflags = 3787 3786 SBAL_EFLAGS_MIDDLE_FRAG; ··· 3821 3820 int element = buf->next_element_to_fill; 3822 3821 is_first_elem = false; 3823 3822 3824 - buffer->element[element].addr = hdr; 3823 + buffer->element[element].addr = virt_to_phys(hdr); 3825 3824 buffer->element[element].length = hd_len; 3826 3825 buffer->element[element].eflags = SBAL_EFLAGS_FIRST_FRAG; 3827 3826 /* remember to free cache-allocated qeth_hdr: */ ··· 4747 4746 if (card->options.cq == QETH_CQ_ENABLED) { 4748 4747 int offset = QDIO_MAX_BUFFERS_PER_Q * 4749 4748 (card->qdio.no_in_queues - 1); 4750 - for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; ++i) { 4751 - in_sbal_ptrs[offset + i] = (struct qdio_buffer *) 4752 - virt_to_phys(card->qdio.c_q->bufs[i].buffer); 4753 - } 4749 + 4750 + for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; i++) 4751 + in_sbal_ptrs[offset + i] = 4752 + card->qdio.c_q->bufs[i].buffer; 4754 4753 4755 4754 queue_start_poll[card->qdio.no_in_queues - 1] = NULL; 4756 4755 } ··· 4784 4783 rc = -ENOMEM; 4785 4784 goto out_free_qib_param; 4786 4785 } 4787 - for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; ++i) { 4788 - in_sbal_ptrs[i] = (struct qdio_buffer *) 4789 - virt_to_phys(card->qdio.in_q->bufs[i].buffer); 4790 - } 4786 + 4787 + for (i = 0; i < QDIO_MAX_BUFFERS_PER_Q; i++) 4788 + in_sbal_ptrs[i] = card->qdio.in_q->bufs[i].buffer; 4791 4789 4792 4790 queue_start_poll = kcalloc(card->qdio.no_in_queues, sizeof(void *), 4793 4791 GFP_KERNEL); ··· 4807 4807 rc = -ENOMEM; 4808 4808 goto out_free_queue_start_poll; 4809 4809 } 4810 + 4810 4811 for (i = 0, k = 0; i < card->qdio.no_out_queues; ++i) 4811 - for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; ++j, ++k) { 4812 - out_sbal_ptrs[k] = (struct qdio_buffer *)virt_to_phys( 4813 - card->qdio.out_qs[i]->bufs[j]->buffer); 4814 - } 4812 + for (j = 0; j < QDIO_MAX_BUFFERS_PER_Q; j++, k++) 4813 + out_sbal_ptrs[k] = 4814 + card->qdio.out_qs[i]->bufs[j]->buffer; 4815 4815 4816 4816 memset(&init_data, 0, sizeof(struct qdio_initialize)); 4817 4817 init_data.cdev = CARD_DDEV(card); ··· 5289 5289 offset = 0; 5290 5290 } 5291 5291 5292 - hdr = element->addr + offset; 5292 + hdr = phys_to_virt(element->addr) + offset; 5293 5293 offset += sizeof(*hdr); 5294 5294 skb = NULL; 5295 5295 ··· 5388 5388 walk_packet: 5389 5389 while (skb_len) { 5390 5390 int data_len = min(skb_len, (int)(element->length - offset)); 5391 - char *data = element->addr + offset; 5391 + char *data = phys_to_virt(element->addr) + offset; 5392 5392 5393 5393 skb_len -= data_len; 5394 5394 offset += data_len;
+1 -1
drivers/s390/scsi/zfcp_fsf.c
··· 2510 2510 for (idx = 0; idx < QDIO_MAX_ELEMENTS_PER_BUFFER; idx++) { 2511 2511 2512 2512 sbale = &sbal->element[idx]; 2513 - req_id = (unsigned long) sbale->addr; 2513 + req_id = sbale->addr; 2514 2514 fsf_req = zfcp_reqlist_find_rm(adapter->req_list, req_id); 2515 2515 2516 2516 if (!fsf_req) {
+3 -3
drivers/s390/scsi/zfcp_qdio.c
··· 98 98 memset(pl, 0, 99 99 ZFCP_QDIO_MAX_SBALS_PER_REQ * sizeof(void *)); 100 100 sbale = qdio->res_q[idx]->element; 101 - req_id = (u64) sbale->addr; 101 + req_id = sbale->addr; 102 102 scount = min(sbale->scount + 1, 103 103 ZFCP_QDIO_MAX_SBALS_PER_REQ + 1); 104 104 /* incl. signaling SBAL */ ··· 199 199 q_req->sbal_number); 200 200 return -EINVAL; 201 201 } 202 - sbale->addr = sg_virt(sg); 202 + sbale->addr = sg_phys(sg); 203 203 sbale->length = sg->length; 204 204 } 205 205 return 0; ··· 418 418 sbale->length = 0; 419 419 sbale->eflags = SBAL_EFLAGS_LAST_ENTRY; 420 420 sbale->sflags = 0; 421 - sbale->addr = NULL; 421 + sbale->addr = 0; 422 422 } 423 423 424 424 if (do_QDIO(cdev, QDIO_FLAG_SYNC_INPUT, 0, 0, QDIO_MAX_BUFFERS_PER_Q))
+3 -3
drivers/s390/scsi/zfcp_qdio.h
··· 122 122 % QDIO_MAX_BUFFERS_PER_Q; 123 123 124 124 sbale = zfcp_qdio_sbale_req(qdio, q_req); 125 - sbale->addr = (void *) req_id; 125 + sbale->addr = req_id; 126 126 sbale->eflags = 0; 127 127 sbale->sflags = SBAL_SFLAGS0_COMMAND | sbtype; 128 128 129 129 if (unlikely(!data)) 130 130 return; 131 131 sbale++; 132 - sbale->addr = data; 132 + sbale->addr = virt_to_phys(data); 133 133 sbale->length = len; 134 134 } 135 135 ··· 152 152 BUG_ON(q_req->sbale_curr == qdio->max_sbale_per_sbal - 1); 153 153 q_req->sbale_curr++; 154 154 sbale = zfcp_qdio_sbale_curr(qdio, q_req); 155 - sbale->addr = data; 155 + sbale->addr = virt_to_phys(data); 156 156 sbale->length = len; 157 157 } 158 158
-9
kernel/sysctl.c
··· 805 805 .extra2 = &maxolduid, 806 806 }, 807 807 #ifdef CONFIG_S390 808 - #ifdef CONFIG_MATHEMU 809 - { 810 - .procname = "ieee_emulation_warnings", 811 - .data = &sysctl_ieee_emulation_warnings, 812 - .maxlen = sizeof(int), 813 - .mode = 0644, 814 - .proc_handler = proc_dointvec, 815 - }, 816 - #endif 817 808 { 818 809 .procname = "userprocess_debug", 819 810 .data = &show_unhandled_signals,