Date: Sun, 15 Jan 2017 09:33:29 +0000 (UTC) From: Ngie Cooper <ngie@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r312218 - in projects/netbsd-tests-upstream-01-2017: lib/msun/tests release/tools sys/ddb sys/dev/etherswitch/micrel sys/i386/i386 sys/kern sys/mips/atheros sys/mips/conf sys/net sys/sy... Message-ID: <201701150933.v0F9XTps073828@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ngie Date: Sun Jan 15 09:33:29 2017 New Revision: 312218 URL: https://svnweb.freebsd.org/changeset/base/312218 Log: MFhead@r312217 Added: projects/netbsd-tests-upstream-01-2017/sys/dev/etherswitch/micrel/ - copied from r312217, head/sys/dev/etherswitch/micrel/ Modified: projects/netbsd-tests-upstream-01-2017/lib/msun/tests/Makefile projects/netbsd-tests-upstream-01-2017/lib/msun/tests/fmaxmin_test.c projects/netbsd-tests-upstream-01-2017/release/tools/ec2.conf projects/netbsd-tests-upstream-01-2017/sys/ddb/db_input.c projects/netbsd-tests-upstream-01-2017/sys/i386/i386/pmap.c projects/netbsd-tests-upstream-01-2017/sys/kern/kern_acct.c projects/netbsd-tests-upstream-01-2017/sys/kern/kern_shutdown.c projects/netbsd-tests-upstream-01-2017/sys/kern/subr_gtaskqueue.c projects/netbsd-tests-upstream-01-2017/sys/kern/uipc_mbuf.c projects/netbsd-tests-upstream-01-2017/sys/mips/atheros/ar71xxreg.h projects/netbsd-tests-upstream-01-2017/sys/mips/atheros/uart_bus_ar71xx.c projects/netbsd-tests-upstream-01-2017/sys/mips/conf/ONIONOMEGA.hints projects/netbsd-tests-upstream-01-2017/sys/net/iflib.c projects/netbsd-tests-upstream-01-2017/sys/sys/ata.h projects/netbsd-tests-upstream-01-2017/sys/vm/vm_object.c projects/netbsd-tests-upstream-01-2017/sys/vm/vm_page.c projects/netbsd-tests-upstream-01-2017/tests/sys/kern/acct/Makefile projects/netbsd-tests-upstream-01-2017/tests/sys/mac/bsdextended/ugidfw_test.c projects/netbsd-tests-upstream-01-2017/tests/sys/vfs/lookup_cap_dotdot.c projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/ctld.c projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/ctld.h projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/login.c projects/netbsd-tests-upstream-01-2017/usr.sbin/inetd/inetd.c projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/iscsid.c projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/iscsid.h projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/login.c Directory Properties: projects/netbsd-tests-upstream-01-2017/ (props changed) Modified: projects/netbsd-tests-upstream-01-2017/lib/msun/tests/Makefile ============================================================================== --- projects/netbsd-tests-upstream-01-2017/lib/msun/tests/Makefile Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/lib/msun/tests/Makefile Sun Jan 15 09:33:29 2017 (r312218) @@ -55,10 +55,7 @@ TAP_TESTS_C+= ctrig_test TAP_TESTS_C+= exponential_test TAP_TESTS_C+= fenv_test TAP_TESTS_C+= fma_test -# clang 3.8.0 fails always fails this test. See: bug 208703 -.if ! (${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 30800) TAP_TESTS_C+= fmaxmin_test -.endif TAP_TESTS_C+= ilogb2_test TAP_TESTS_C+= invtrig_test TAP_TESTS_C+= invctrig_test Modified: projects/netbsd-tests-upstream-01-2017/lib/msun/tests/fmaxmin_test.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/lib/msun/tests/fmaxmin_test.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/lib/msun/tests/fmaxmin_test.c Sun Jan 15 09:33:29 2017 (r312218) @@ -86,6 +86,8 @@ testall_r(long double big, long double s return (ok); } +const char *comment = NULL; + /* * Test all the functions: fmaxf, fmax, fmaxl, fminf, fmin, and fminl, * in all rounding modes and with the arguments in different orders. @@ -107,10 +109,17 @@ testall(int testnum, long double big, lo break; } } - printf("%sok %d - big = %.20Lg, small = %.20Lg\n", - (i == 4) ? "" : "not ", testnum, big, small); + printf("%sok %d - big = %.20Lg, small = %.20Lg%s\n", + (i == 4) ? "" : "not ", testnum, big, small, + comment == NULL ? "" : comment); } +/* Clang 3.8.0+ fails the invariants for testcase 6, 7, 10, and 11. */ +#if defined(__clang__) && \ + (__clang_major__ >= 3 && __clang_minor__ >= 8 && __clang_patchlevel__ >= 0) +#define affected_by_bug_208703 +#endif + int main(int argc, char *argv[]) { @@ -122,15 +131,23 @@ main(int argc, char *argv[]) testall(3, nextafterf(42.0, INFINITY), 42.0); testall(4, -5.0, -5.0); testall(5, -3.0, -4.0); +#ifdef affected_by_bug_208703 + comment = "# TODO: testcase 6-7 fails invariant with clang 3.8+ (bug 208703)"; +#endif testall(6, 1.0, NAN); testall(7, INFINITY, NAN); + comment = NULL; testall(8, INFINITY, 1.0); testall(9, -3.0, -INFINITY); testall(10, 3.0, -INFINITY); +#ifdef affected_by_bug_208703 + comment = "# TODO: testcase 11-12 fails invariant with clang 3.8+ (bug 208703)"; +#endif testall(11, NAN, NAN); /* This test isn't strictly required to work by C99. */ testall(12, 0.0, -0.0); + comment = NULL; return (0); } Modified: projects/netbsd-tests-upstream-01-2017/release/tools/ec2.conf ============================================================================== --- projects/netbsd-tests-upstream-01-2017/release/tools/ec2.conf Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/release/tools/ec2.conf Sun Jan 15 09:33:29 2017 (r312218) @@ -6,7 +6,7 @@ # Packages to install into the image we're creating. This is a deliberately # minimalist set, providing only the packages necessary to bootstrap further # package installation as specified via EC2 user-data. -export VM_EXTRA_PACKAGES="ec2-scripts firstboot-freebsd-update firstboot-pkgs" +export VM_EXTRA_PACKAGES="ec2-scripts firstboot-freebsd-update firstboot-pkgs dual-dhclient" # Set to a list of third-party software to enable in rc.conf(5). export VM_RC_LIST="ec2_configinit ec2_fetchkey ec2_ephemeralswap ec2_loghostkey firstboot_freebsd_update firstboot_pkgs" @@ -39,8 +39,9 @@ vm_extra_pre_umount() { # time; expand our filesystem to fill the disk. echo 'growfs_enable="YES"' >> ${DESTDIR}/etc/rc.conf - # EC2 instances use DHCP to get their network configuration. - echo 'ifconfig_DEFAULT="SYNCDHCP"' >> ${DESTDIR}/etc/rc.conf + # EC2 instances use DHCP to get their network configuration. IPv6 + # requires accept_rtadv. + echo 'ifconfig_DEFAULT="SYNCDHCP accept_rtadv"' >> ${DESTDIR}/etc/rc.conf # Unless the system has been configured via EC2 user-data, the user # will need to SSH in to do anything. @@ -51,6 +52,10 @@ vm_extra_pre_umount() { # via EC2 user-data. echo 'firstboot_pkgs_list="awscli"' >> ${DESTDIR}/etc/rc.conf + # Enable IPv6 on all interfaces, and use DHCP on both IPv4 and IPv6. + echo 'ipv6_activate_all_interfaces="YES"' >> ${DESTDIR}/etc/rc.conf + echo 'dhclient_program="/usr/local/sbin/dual-dhclient"' >> ${DESTDIR}/etc/rc.conf + # The EC2 console is output-only, so while printing a backtrace can # be useful, there's no point dropping into a debugger or waiting # for a keypress. Modified: projects/netbsd-tests-upstream-01-2017/sys/ddb/db_input.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/ddb/db_input.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/ddb/db_input.c Sun Jan 15 09:33:29 2017 (r312218) @@ -63,6 +63,7 @@ static int db_lhist_nlines; #define BLANK ' ' #define BACKUP '\b' +static int cnmaygetc(void); static void db_delete(int n, int bwd); static int db_inputchar(int c); static void db_putnchars(int c, int count); @@ -290,6 +291,12 @@ db_inputchar(c) return (0); } +static int +cnmaygetc() +{ + return (-1); +} + int db_readline(lstart, lsize) char * lstart; @@ -343,7 +350,7 @@ db_check_interrupt(void) { int c; - c = cncheckc(); + c = cnmaygetc(); switch (c) { case -1: /* no character */ return; @@ -354,7 +361,7 @@ db_check_interrupt(void) case CTRL('s'): do { - c = cncheckc(); + c = cnmaygetc(); if (c == CTRL('c')) db_error((char *)0); } while (c != CTRL('q')); Modified: projects/netbsd-tests-upstream-01-2017/sys/i386/i386/pmap.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/i386/i386/pmap.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/i386/i386/pmap.c Sun Jan 15 09:33:29 2017 (r312218) @@ -4216,8 +4216,14 @@ pmap_zero_page(vm_page_t m) invlcaddr(pc->pc_cmap_addr2); pagezero(pc->pc_cmap_addr2); *cmap_pte2 = 0; - mtx_unlock(&pc->pc_cmap_lock); + + /* + * Unpin the thread before releasing the lock. Otherwise the thread + * could be rescheduled while still bound to the current CPU, only + * to unpin itself immediately upon resuming execution. + */ sched_unpin(); + mtx_unlock(&pc->pc_cmap_lock); } /* @@ -4244,8 +4250,8 @@ pmap_zero_page_area(vm_page_t m, int off else bzero(pc->pc_cmap_addr2 + off, size); *cmap_pte2 = 0; - mtx_unlock(&pc->pc_cmap_lock); sched_unpin(); + mtx_unlock(&pc->pc_cmap_lock); } /* @@ -4275,8 +4281,8 @@ pmap_copy_page(vm_page_t src, vm_page_t bcopy(pc->pc_cmap_addr1, pc->pc_cmap_addr2, PAGE_SIZE); *cmap_pte1 = 0; *cmap_pte2 = 0; - mtx_unlock(&pc->pc_cmap_lock); sched_unpin(); + mtx_unlock(&pc->pc_cmap_lock); } int unmapped_buf_allowed = 1; @@ -4323,8 +4329,8 @@ pmap_copy_pages(vm_page_t ma[], vm_offse } *cmap_pte1 = 0; *cmap_pte2 = 0; - mtx_unlock(&pc->pc_cmap_lock); sched_unpin(); + mtx_unlock(&pc->pc_cmap_lock); } /* @@ -5310,8 +5316,8 @@ pmap_flush_page(vm_page_t m) if (useclflushopt || cpu_vendor_id != CPU_VENDOR_INTEL) mfence(); *cmap_pte2 = 0; - mtx_unlock(&pc->pc_cmap_lock); sched_unpin(); + mtx_unlock(&pc->pc_cmap_lock); } else pmap_invalidate_cache(); } Modified: projects/netbsd-tests-upstream-01-2017/sys/kern/kern_acct.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/kern/kern_acct.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/kern/kern_acct.c Sun Jan 15 09:33:29 2017 (r312218) @@ -469,8 +469,8 @@ static uint32_t encode_timeval(struct timeval tv) { int log2_s; - int val, exponent; /* Unnormalized value and exponent */ - int norm_exponent; /* Normalized exponent */ + int val, exp; /* Unnormalized value and exponent */ + int norm_exp; /* Normalized exponent */ int shift; /* @@ -481,7 +481,7 @@ encode_timeval(struct timeval tv) if (tv.tv_sec == 0) { if (tv.tv_usec == 0) return (0); - exponent = 0; + exp = 0; val = tv.tv_usec; } else { /* @@ -490,24 +490,24 @@ encode_timeval(struct timeval tv) */ log2_s = fls(tv.tv_sec) - 1; if (log2_s + LOG2_1M < CALC_BITS) { - exponent = 0; + exp = 0; val = 1000000 * tv.tv_sec + tv.tv_usec; } else { - exponent = log2_s + LOG2_1M - CALC_BITS; + exp = log2_s + LOG2_1M - CALC_BITS; val = (unsigned int)(((uint64_t)1000000 * tv.tv_sec + - tv.tv_usec) >> exponent); + tv.tv_usec) >> exp); } } /* Now normalize and pack the value into an IEEE-754 float. */ - norm_exponent = fls(val) - 1; - shift = FLT_MANT_DIG - norm_exponent - 1; + norm_exp = fls(val) - 1; + shift = FLT_MANT_DIG - norm_exp - 1; #ifdef ACCT_DEBUG printf("val=%d exp=%d shift=%d log2(val)=%d\n", - val, exponent, shift, norm_exponent); - printf("exp=%x mant=%x\n", FLT_MAX_EXP - 1 + exponent + norm_exponent, + val, exp, shift, norm_exp); + printf("exp=%x mant=%x\n", FLT_MAX_EXP - 1 + exp + norm_exp, ((shift > 0 ? (val << shift) : (val >> -shift)) & MANT_MASK)); #endif - return (((FLT_MAX_EXP - 1 + exponent + norm_exponent) << (FLT_MANT_DIG - 1)) | + return (((FLT_MAX_EXP - 1 + exp + norm_exp) << (FLT_MANT_DIG - 1)) | ((shift > 0 ? val << shift : val >> -shift) & MANT_MASK)); } @@ -518,7 +518,7 @@ encode_timeval(struct timeval tv) static uint32_t encode_long(long val) { - int norm_exponent; /* Normalized exponent */ + int norm_exp; /* Normalized exponent */ int shift; if (val == 0) @@ -529,15 +529,15 @@ encode_long(long val) val); val = LONG_MAX; } - norm_exponent = fls(val) - 1; - shift = FLT_MANT_DIG - norm_exponent - 1; + norm_exp = fls(val) - 1; + shift = FLT_MANT_DIG - norm_exp - 1; #ifdef ACCT_DEBUG printf("val=%d shift=%d log2(val)=%d\n", - val, shift, norm_exponent); - printf("exp=%x mant=%x\n", FLT_MAX_EXP - 1 + exp + norm_exponent, + val, shift, norm_exp); + printf("exp=%x mant=%x\n", FLT_MAX_EXP - 1 + exp + norm_exp, ((shift > 0 ? (val << shift) : (val >> -shift)) & MANT_MASK)); #endif - return (((FLT_MAX_EXP - 1 + norm_exponent) << (FLT_MANT_DIG - 1)) | + return (((FLT_MAX_EXP - 1 + norm_exp) << (FLT_MANT_DIG - 1)) | ((shift > 0 ? val << shift : val >> -shift) & MANT_MASK)); } Modified: projects/netbsd-tests-upstream-01-2017/sys/kern/kern_shutdown.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/kern/kern_shutdown.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/kern/kern_shutdown.c Sun Jan 15 09:33:29 2017 (r312218) @@ -733,13 +733,13 @@ vpanic(const char *fmt, va_list ap) CPU_CLR(PCPU_GET(cpuid), &other_cpus); stop_cpus_hard(other_cpus); } +#endif /* * Ensure that the scheduler is stopped while panicking, even if panic * has been entered from kdb. */ td->td_stopsched = 1; -#endif bootopt = RB_AUTOBOOT; newpanic = 0; Modified: projects/netbsd-tests-upstream-01-2017/sys/kern/subr_gtaskqueue.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/kern/subr_gtaskqueue.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/kern/subr_gtaskqueue.c Sun Jan 15 09:33:29 2017 (r312218) @@ -647,7 +647,7 @@ taskqgroup_attach(struct taskqgroup *qgr qgroup->tqg_queue[qid].tgc_cnt++; LIST_INSERT_HEAD(&qgroup->tqg_queue[qid].tgc_tasks, gtask, gt_list); gtask->gt_taskqueue = qgroup->tqg_queue[qid].tgc_taskq; - if (irq != -1 && smp_started) { + if (irq != -1 && (smp_started || mp_ncpus == 1)) { gtask->gt_cpu = qgroup->tqg_queue[qid].tgc_cpu; CPU_ZERO(&mask); CPU_SET(qgroup->tqg_queue[qid].tgc_cpu, &mask); @@ -697,7 +697,7 @@ taskqgroup_attach_cpu(struct taskqgroup gtask->gt_irq = irq; gtask->gt_cpu = cpu; mtx_lock(&qgroup->tqg_lock); - if (smp_started) { + if (smp_started || mp_ncpus == 1) { for (i = 0; i < qgroup->tqg_cnt; i++) if (qgroup->tqg_queue[i].tgc_cpu == cpu) { qid = i; @@ -717,7 +717,7 @@ taskqgroup_attach_cpu(struct taskqgroup CPU_ZERO(&mask); CPU_SET(cpu, &mask); - if (irq != -1 && smp_started) + if (irq != -1 && (smp_started || mp_ncpus == 1)) intr_setaffinity(irq, &mask); return (0); } @@ -731,7 +731,7 @@ taskqgroup_attach_cpu_deferred(struct ta qid = -1; irq = gtask->gt_irq; cpu = gtask->gt_cpu; - MPASS(smp_started); + MPASS(smp_started || mp_ncpus == 1); mtx_lock(&qgroup->tqg_lock); for (i = 0; i < qgroup->tqg_cnt; i++) if (qgroup->tqg_queue[i].tgc_cpu == cpu) { @@ -824,7 +824,7 @@ _taskqgroup_adjust(struct taskqgroup *qg mtx_assert(&qgroup->tqg_lock, MA_OWNED); - if (cnt < 1 || cnt * stride > mp_ncpus || !smp_started) { + if (cnt < 1 || cnt * stride > mp_ncpus || (!smp_started && (mp_ncpus != 1))) { printf("taskqgroup_adjust failed cnt: %d stride: %d mp_ncpus: %d smp_started: %d\n", cnt, stride, mp_ncpus, smp_started); return (EINVAL); Modified: projects/netbsd-tests-upstream-01-2017/sys/kern/uipc_mbuf.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/kern/uipc_mbuf.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/kern/uipc_mbuf.c Sun Jan 15 09:33:29 2017 (r312218) @@ -169,7 +169,7 @@ CTASSERT(sizeof(struct m_ext) == 28); * plain pointer does. */ #ifdef INVARIANTS -static struct mbuf m_assertbuf; +static struct mbuf __used m_assertbuf; CTASSERT(sizeof(m_assertbuf.m_slist) == sizeof(m_assertbuf.m_next)); CTASSERT(sizeof(m_assertbuf.m_stailq) == sizeof(m_assertbuf.m_next)); CTASSERT(sizeof(m_assertbuf.m_slistpkt) == sizeof(m_assertbuf.m_nextpkt)); Modified: projects/netbsd-tests-upstream-01-2017/sys/mips/atheros/ar71xxreg.h ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/mips/atheros/ar71xxreg.h Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/mips/atheros/ar71xxreg.h Sun Jan 15 09:33:29 2017 (r312218) @@ -111,6 +111,10 @@ #define PCI_WINDOW7_CONF_ADDR 0x07000000 #define AR71XX_UART_ADDR 0x18020000 +#define AR71XX_UART_THR 0x0 +#define AR71XX_UART_LSR 0x14 +#define AR71XX_UART_LSR_THRE (1 << 5) +#define AR71XX_UART_LSR_TEMT (1 << 6) #define AR71XX_USB_CTRL_FLADJ 0x18030000 #define USB_CTRL_FLADJ_HOST_SHIFT 12 Modified: projects/netbsd-tests-upstream-01-2017/sys/mips/atheros/uart_bus_ar71xx.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/mips/atheros/uart_bus_ar71xx.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/mips/atheros/uart_bus_ar71xx.c Sun Jan 15 09:33:29 2017 (r312218) @@ -86,4 +86,21 @@ uart_ar71xx_probe(device_t dev) return (uart_bus_probe(dev, 2, freq, 0, 0)); } +#ifdef EARLY_PRINTF +static void +ar71xx_early_putc(int c) +{ + int i; + + for (i = 0; i < 1000; i++) { + if (ATH_READ_REG(AR71XX_UART_ADDR + AR71XX_UART_LSR) + & AR71XX_UART_LSR_THRE) + break; + } + + ATH_WRITE_REG(AR71XX_UART_ADDR + AR71XX_UART_THR, (c & 0xff)); +} +early_putc_t *early_putc = ar71xx_early_putc; +#endif + DRIVER_MODULE(uart, apb, uart_ar71xx_driver, uart_devclass, 0, 0); Modified: projects/netbsd-tests-upstream-01-2017/sys/mips/conf/ONIONOMEGA.hints ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/mips/conf/ONIONOMEGA.hints Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/mips/conf/ONIONOMEGA.hints Sun Jan 15 09:33:29 2017 (r312218) @@ -31,6 +31,10 @@ hint.arge.1.media=1000 hint.arge.1.fduplex=1 hint.arge.1.eeprommac=0x1fff0006 +# ath0 +hint.ath.0.eepromaddr=0x1fff0000 +hint.ath.0.eepromsize=16384 + # 16MB flash layout: # [ 0.510000] 5 tp-link partitions found on MTD device spi0.0 # [ 0.510000] Creating 5 MTD partitions on "spi0.0": @@ -92,3 +96,30 @@ hint.map.6.start=0x00ff0000 hint.map.6.end=0x01000000 hint.map.6.name="ART" hint.map.6.readonly=1 + +# GPIO +hint.gpio.0.pinmask=0x0c8ff1c3 + +hint.gpioled.0.at="gpiobus0" +hint.gpioled.0.pins=0x08000000 +hint.gpioled.0.name="board" +hint.gpioled.0.invert=0 + +#Red +hint.gpioled.1.at="gpiobus0" +hint.gpioled.1.pins=0x00020000 +hint.gpioled.1.name="red" +hint.gpioled.1.invert=0 + +#Green +hint.gpioled.2.at="gpiobus0" +hint.gpioled.2.pins=0x00010000 +hint.gpioled.2.name="green" +hint.gpioled.2.invert=0 + +#Blue +hint.gpioled.3.at="gpiobus0" +hint.gpioled.3.pins=0x00008000 +hint.gpioled.3.name="blue" +hint.gpioled.3.invert=0 + Modified: projects/netbsd-tests-upstream-01-2017/sys/net/iflib.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/net/iflib.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/net/iflib.c Sun Jan 15 09:33:29 2017 (r312218) @@ -133,10 +133,13 @@ typedef struct iflib_rxq *iflib_rxq_t; struct iflib_fl; typedef struct iflib_fl *iflib_fl_t; +struct iflib_ctx; + typedef struct iflib_filter_info { driver_filter_t *ifi_filter; void *ifi_filter_arg; struct grouptask *ifi_task; + struct iflib_ctx *ifi_ctx; } *iflib_filter_info_t; struct iflib_ctx { @@ -300,6 +303,8 @@ typedef struct iflib_sw_tx_desc_array { #define IFC_MULTISEG 0x04 #define IFC_DMAR 0x08 #define IFC_SC_ALLOCATED 0x10 +#define IFC_INIT_DONE 0x20 + #define CSUM_OFFLOAD (CSUM_IP_TSO|CSUM_IP6_TSO|CSUM_IP| \ CSUM_IP_UDP|CSUM_IP_TCP|CSUM_IP_SCTP| \ @@ -1194,7 +1199,7 @@ iflib_fast_intr(void *arg) iflib_filter_info_t info = arg; struct grouptask *gtask = info->ifi_task; - if (!smp_started) + if (!smp_started && mp_ncpus > 1) return (FILTER_HANDLED); DBG_COUNTER_INC(fast_intrs); @@ -3753,6 +3758,7 @@ iflib_device_register(device_t dev, void if_setgetcounterfn(ctx->ifc_ifp, iflib_if_get_counter); iflib_add_device_sysctl_post(ctx); + ctx->ifc_flags |= IFC_INIT_DONE; return (0); fail_detach: ether_ifdetach(ctx->ifc_ifp); @@ -4471,6 +4477,7 @@ iflib_irq_alloc_generic(if_ctx_t ctx, if info->ifi_filter = filter; info->ifi_filter_arg = filter_arg; info->ifi_task = gtask; + info->ifi_ctx = ctx; err = _iflib_irq_alloc(ctx, irq, rid, iflib_fast_intr, NULL, info, name); if (err != 0) { @@ -4567,6 +4574,7 @@ iflib_legacy_setup(if_ctx_t ctx, driver_ info->ifi_filter = filter; info->ifi_filter_arg = filter_arg; info->ifi_task = gtask; + info->ifi_ctx = ctx; /* We allocate a single interrupt resource */ if ((err = _iflib_irq_alloc(ctx, irq, tqrid, iflib_fast_intr, NULL, info, name)) != 0) Modified: projects/netbsd-tests-upstream-01-2017/sys/sys/ata.h ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/sys/ata.h Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/sys/ata.h Sun Jan 15 09:33:29 2017 (r312218) @@ -682,7 +682,7 @@ struct atapi_sense { #define ATA_IDL_ATA_STRINGS 0x05 /* ATA Strings */ #define ATA_IDL_SECURITY 0x06 /* Security */ #define ATA_IDL_PARALLEL_ATA 0x07 /* Parallel ATA */ -#define ATA_IDL_SERIAL_ATA 0x08 /* Seiral ATA */ +#define ATA_IDL_SERIAL_ATA 0x08 /* Serial ATA */ #define ATA_IDL_ZDI 0x09 /* Zoned Device Information */ struct ata_gp_log_dir { Modified: projects/netbsd-tests-upstream-01-2017/sys/vm/vm_object.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/vm/vm_object.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/vm/vm_object.c Sun Jan 15 09:33:29 2017 (r312218) @@ -1097,7 +1097,7 @@ vm_object_sync(vm_object_t object, vm_oo */ void vm_object_madvise(vm_object_t object, vm_pindex_t pindex, vm_pindex_t end, - int advise) + int advice) { vm_pindex_t tpindex; vm_object_t backing_object, tobject; @@ -1105,11 +1105,9 @@ vm_object_madvise(vm_object_t object, vm if (object == NULL) return; + VM_OBJECT_WLOCK(object); - /* - * Locate and adjust resident pages - */ - for (; pindex < end; pindex += 1) { + for (m = NULL; pindex < end; pindex++) { relookup: tobject = object; tpindex = pindex; @@ -1118,7 +1116,7 @@ shadowlookup: * MADV_FREE only operates on OBJT_DEFAULT or OBJT_SWAP pages * and those pages must be OBJ_ONEMAPPING. */ - if (advise == MADV_FREE) { + if (advice == MADV_FREE) { if ((tobject->type != OBJT_DEFAULT && tobject->type != OBJT_SWAP) || (tobject->flags & OBJ_ONEMAPPING) == 0) { @@ -1126,15 +1124,29 @@ shadowlookup: } } else if ((tobject->flags & OBJ_UNMANAGED) != 0) goto unlock_tobject; - m = vm_page_lookup(tobject, tpindex); - if (m == NULL) { - /* - * There may be swap even if there is no backing page - */ - if (advise == MADV_FREE && tobject->type == OBJT_SWAP) + + /* + * In the common case where the object has no backing object, we + * can avoid performing lookups at each pindex. In either case, + * when applying MADV_FREE we take care to release any swap + * space used to store non-resident pages. + */ + if (object->backing_object == NULL) { + m = (m != NULL) ? TAILQ_NEXT(m, listq) : + vm_page_find_least(object, pindex); + tpindex = (m != NULL && m->pindex < end) ? + m->pindex : end; + if (advice == MADV_FREE && object->type == OBJT_SWAP && + tpindex > pindex) + swap_pager_freespace(object, pindex, + tpindex - pindex); + if ((pindex = tpindex) == end) + break; + } else if ((m = vm_page_lookup(tobject, tpindex)) == NULL) { + if (advice == MADV_FREE && tobject->type == OBJT_SWAP) swap_pager_freespace(tobject, tpindex, 1); /* - * next object + * Prepare to search the next object in the chain. */ backing_object = tobject->backing_object; if (backing_object == NULL) @@ -1145,11 +1157,13 @@ shadowlookup: VM_OBJECT_WUNLOCK(tobject); tobject = backing_object; goto shadowlookup; - } else if (m->valid != VM_PAGE_BITS_ALL) - goto unlock_tobject; + } + /* * If the page is not in a normal state, skip it. */ + if (m->valid != VM_PAGE_BITS_ALL) + goto unlock_tobject; vm_page_lock(m); if (m->hold_count != 0 || m->wire_count != 0) { vm_page_unlock(m); @@ -1160,7 +1174,7 @@ shadowlookup: KASSERT((m->oflags & VPO_UNMANAGED) == 0, ("vm_object_madvise: page %p is not managed", m)); if (vm_page_busied(m)) { - if (advise == MADV_WILLNEED) { + if (advice == MADV_WILLNEED) { /* * Reference the page before unlocking and * sleeping so that the page daemon is less @@ -1172,21 +1186,18 @@ shadowlookup: VM_OBJECT_WUNLOCK(object); VM_OBJECT_WUNLOCK(tobject); vm_page_busy_sleep(m, "madvpo", false); + m = NULL; VM_OBJECT_WLOCK(object); goto relookup; } - if (advise == MADV_WILLNEED) { - vm_page_activate(m); - } else { - vm_page_advise(m, advise); - } + vm_page_advise(m, advice); vm_page_unlock(m); - if (advise == MADV_FREE && tobject->type == OBJT_SWAP) + if (advice == MADV_FREE && tobject->type == OBJT_SWAP) swap_pager_freespace(tobject, tpindex, 1); unlock_tobject: if (tobject != object) VM_OBJECT_WUNLOCK(tobject); - } + } VM_OBJECT_WUNLOCK(object); } Modified: projects/netbsd-tests-upstream-01-2017/sys/vm/vm_page.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/sys/vm/vm_page.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/sys/vm/vm_page.c Sun Jan 15 09:33:29 2017 (r312218) @@ -3002,7 +3002,7 @@ vm_page_try_to_free(vm_page_t m) /* * vm_page_advise * - * Deactivate or do nothing, as appropriate. + * Apply the specified advice to the given page. * * The object and page must be locked. */ @@ -3020,8 +3020,11 @@ vm_page_advise(vm_page_t m, int advice) * would result in a page fault on a later access. */ vm_page_undirty(m); - else if (advice != MADV_DONTNEED) + else if (advice != MADV_DONTNEED) { + if (advice == MADV_WILLNEED) + vm_page_activate(m); return; + } /* * Clear any references to the page. Otherwise, the page daemon will Modified: projects/netbsd-tests-upstream-01-2017/tests/sys/kern/acct/Makefile ============================================================================== --- projects/netbsd-tests-upstream-01-2017/tests/sys/kern/acct/Makefile Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/tests/sys/kern/acct/Makefile Sun Jan 15 09:33:29 2017 (r312218) @@ -13,6 +13,7 @@ acct_test.o: convert.c convert.c: ${SRCTOP}/sys/kern/kern_acct.c sed -n -e 's/log(/syslog(/g' \ + -e 's/exp/expected/g' \ -e '/FLOAT_CONVERSION_START/,/FLOAT_CONVERSION_END/p' ${.ALLSRC} >${.TARGET}.tmp mv ${.TARGET}.tmp ${.TARGET} Modified: projects/netbsd-tests-upstream-01-2017/tests/sys/mac/bsdextended/ugidfw_test.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/tests/sys/mac/bsdextended/ugidfw_test.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/tests/sys/mac/bsdextended/ugidfw_test.c Sun Jan 15 09:33:29 2017 (r312218) @@ -222,7 +222,7 @@ main(void) return (0); } - printf("1..%lu\n", nitems(test_users) + nitems(test_groups) + + printf("1..%zu\n", nitems(test_users) + nitems(test_groups) + 3 * nitems(test_strings) + 2); test_libugidfw_strings(); Modified: projects/netbsd-tests-upstream-01-2017/tests/sys/vfs/lookup_cap_dotdot.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/tests/sys/vfs/lookup_cap_dotdot.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/tests/sys/vfs/lookup_cap_dotdot.c Sun Jan 15 09:33:29 2017 (r312218) @@ -124,6 +124,8 @@ ATF_TC_BODY(lookup_cap_dotdot__basic, tc cap_rights_init(&rights, CAP_LOOKUP, CAP_READ); ATF_REQUIRE(cap_rights_limit(dirfd, &rights) >= 0); + atf_tc_expect_signal(SIGABRT, "needs change done upstream in atf/kyua according to cem: bug 215690"); + ATF_REQUIRE(cap_enter() >= 0); ATF_REQUIRE_MSG(openat(dirfd, "d1/..", O_RDONLY) >= 0, "%s", @@ -144,6 +146,8 @@ ATF_TC_BODY(lookup_cap_dotdot__advanced, check_capsicum(); prepare_dotdot_tests(); + atf_tc_expect_signal(SIGABRT, "needs change done upstream in atf/kyua according to cem: bug 215690"); + cap_rights_init(&rights, CAP_LOOKUP, CAP_READ); ATF_REQUIRE(cap_rights_limit(dirfd, &rights) >= 0); @@ -187,6 +191,8 @@ ATF_TC_BODY(capmode__negative, tc) check_capsicum(); prepare_dotdot_tests(); + atf_tc_expect_signal(SIGABRT, "needs change done upstream in atf/kyua according to cem: bug 215690"); + ATF_REQUIRE(cap_enter() == 0); /* open() not permitted in capability mode */ @@ -225,6 +231,8 @@ ATF_TC_BODY(lookup_cap_dotdot__negative, cap_rights_init(&rights, CAP_LOOKUP, CAP_READ); ATF_REQUIRE(cap_rights_limit(dirfd, &rights) >= 0); + atf_tc_expect_signal(SIGABRT, "needs change done upstream in atf/kyua according to cem: bug 215690"); + ATF_REQUIRE(cap_enter() >= 0); ATF_REQUIRE_ERRNO(ENOTCAPABLE, openat(dirfd, "..", O_RDONLY) < 0); Modified: projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/ctld.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/ctld.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/ctld.c Sun Jan 15 09:33:29 2017 (r312218) @@ -1582,6 +1582,7 @@ connection_new(struct portal *portal, in * Default values, from RFC 3720, section 12. */ conn->conn_max_recv_data_segment_length = 8192; + conn->conn_max_send_data_segment_length = 8192; conn->conn_max_burst_length = 262144; conn->conn_first_burst_length = 65536; conn->conn_immediate_data = true; Modified: projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/ctld.h ============================================================================== --- projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/ctld.h Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/ctld.h Sun Jan 15 09:33:29 2017 (r312218) @@ -48,8 +48,6 @@ #define MAX_LUNS 1024 #define MAX_NAME_LEN 223 #define MAX_DATA_SEGMENT_LENGTH (128 * 1024) -#define MAX_BURST_LENGTH 16776192 -#define FIRST_BURST_LENGTH (128 * 1024) #define SOCKBUF_SIZE 1048576 struct auth { @@ -242,6 +240,10 @@ struct connection { struct sockaddr_storage conn_initiator_sa; uint32_t conn_cmdsn; uint32_t conn_statsn; + int conn_max_recv_data_segment_limit; + int conn_max_send_data_segment_limit; + int conn_max_burst_limit; + int conn_first_burst_limit; int conn_max_recv_data_segment_length; int conn_max_send_data_segment_length; int conn_max_burst_length; Modified: projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/login.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/login.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/usr.sbin/ctld/login.c Sun Jan 15 09:33:29 2017 (r312218) @@ -557,13 +557,15 @@ login_negotiate_key(struct pdu *request, * our MaxRecvDataSegmentLength is not influenced by the * initiator in any way. */ - if ((int)tmp > conn->conn_max_send_data_segment_length) { - log_debugx("capping max_send_data_segment_length " + if ((int)tmp > conn->conn_max_send_data_segment_limit) { + log_debugx("capping MaxRecvDataSegmentLength " "from %zd to %d", tmp, - conn->conn_max_send_data_segment_length); - tmp = conn->conn_max_send_data_segment_length; + conn->conn_max_send_data_segment_limit); + tmp = conn->conn_max_send_data_segment_limit; } conn->conn_max_send_data_segment_length = tmp; + conn->conn_max_recv_data_segment_length = + conn->conn_max_recv_data_segment_limit; keys_add_int(response_keys, name, conn->conn_max_recv_data_segment_length); } else if (strcmp(name, "MaxBurstLength") == 0) { @@ -572,10 +574,10 @@ login_negotiate_key(struct pdu *request, login_send_error(request, 0x02, 0x00); log_errx(1, "received invalid MaxBurstLength"); } - if ((int)tmp > conn->conn_max_burst_length) { + if ((int)tmp > conn->conn_max_burst_limit) { log_debugx("capping MaxBurstLength from %zd to %d", - tmp, conn->conn_max_burst_length); - tmp = conn->conn_max_burst_length; + tmp, conn->conn_max_burst_limit); + tmp = conn->conn_max_burst_limit; } conn->conn_max_burst_length = tmp; keys_add_int(response_keys, name, tmp); @@ -585,10 +587,10 @@ login_negotiate_key(struct pdu *request, login_send_error(request, 0x02, 0x00); log_errx(1, "received invalid FirstBurstLength"); } - if ((int)tmp > conn->conn_first_burst_length) { + if ((int)tmp > conn->conn_first_burst_limit) { log_debugx("capping FirstBurstLength from %zd to %d", - tmp, conn->conn_first_burst_length); - tmp = conn->conn_first_burst_length; + tmp, conn->conn_first_burst_limit); + tmp = conn->conn_first_burst_limit; } conn->conn_first_burst_length = tmp; keys_add_int(response_keys, name, tmp); @@ -694,25 +696,42 @@ login_negotiate(struct connection *conn, * offload, it depends on hardware capabilities. */ assert(conn->conn_target != NULL); + conn->conn_max_recv_data_segment_limit = (1 << 24) - 1; + conn->conn_max_send_data_segment_limit = (1 << 24) - 1; + conn->conn_max_burst_limit = (1 << 24) - 1; + conn->conn_first_burst_limit = (1 << 24) - 1; kernel_limits(conn->conn_portal->p_portal_group->pg_offload, - &conn->conn_max_recv_data_segment_length, - &conn->conn_max_send_data_segment_length, - &conn->conn_max_burst_length, - &conn->conn_first_burst_length); + &conn->conn_max_recv_data_segment_limit, + &conn->conn_max_send_data_segment_limit, + &conn->conn_max_burst_limit, + &conn->conn_first_burst_limit); /* We expect legal, usable values at this point. */ - assert(conn->conn_max_recv_data_segment_length >= 512); - assert(conn->conn_max_recv_data_segment_length < (1 << 24)); - assert(conn->conn_max_burst_length >= 512); - assert(conn->conn_max_burst_length < (1 << 24)); - assert(conn->conn_first_burst_length >= 512); - assert(conn->conn_first_burst_length < (1 << 24)); - assert(conn->conn_first_burst_length <= - conn->conn_max_burst_length); + assert(conn->conn_max_recv_data_segment_limit >= 512); + assert(conn->conn_max_recv_data_segment_limit < (1 << 24)); + assert(conn->conn_max_send_data_segment_limit >= 512); + assert(conn->conn_max_send_data_segment_limit < (1 << 24)); + assert(conn->conn_max_burst_limit >= 512); + assert(conn->conn_max_burst_limit < (1 << 24)); + assert(conn->conn_first_burst_limit >= 512); + assert(conn->conn_first_burst_limit < (1 << 24)); + assert(conn->conn_first_burst_limit <= + conn->conn_max_burst_limit); + + /* + * Limit default send length in case it won't be negotiated. + * We can't do it for other limits, since they may affect both + * sender and receiver operation, and we must obey defaults. + */ + if (conn->conn_max_send_data_segment_limit < + conn->conn_max_send_data_segment_length) { + conn->conn_max_send_data_segment_length = + conn->conn_max_send_data_segment_limit; + } } else { - conn->conn_max_recv_data_segment_length = + conn->conn_max_recv_data_segment_limit = MAX_DATA_SEGMENT_LENGTH; - conn->conn_max_send_data_segment_length = + conn->conn_max_send_data_segment_limit = MAX_DATA_SEGMENT_LENGTH; } Modified: projects/netbsd-tests-upstream-01-2017/usr.sbin/inetd/inetd.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/usr.sbin/inetd/inetd.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/usr.sbin/inetd/inetd.c Sun Jan 15 09:33:29 2017 (r312218) @@ -138,7 +138,9 @@ __FBSDID("$FreeBSD$"); #include <string.h> #include <sysexits.h> #include <syslog.h> +#ifdef LIBWRAP #include <tcpd.h> +#endif #include <unistd.h> #include "inetd.h" @@ -307,6 +309,7 @@ getvalue(const char *arg, int *value, co return 0; /* success */ } +#ifdef LIBWRAP static sa_family_t whichaf(struct request_info *req) { @@ -322,6 +325,7 @@ whichaf(struct request_info *req) #endif return sa->sa_family; } +#endif int main(int argc, char **argv) Modified: projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/iscsid.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/iscsid.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/iscsid.c Sun Jan 15 09:33:29 2017 (r312218) @@ -172,8 +172,10 @@ connection_new(int iscsi_fd, const struc conn->conn_data_digest = CONN_DIGEST_NONE; conn->conn_initial_r2t = true; conn->conn_immediate_data = true; - conn->conn_max_burst_length = MAX_BURST_LENGTH; - conn->conn_first_burst_length = FIRST_BURST_LENGTH; + conn->conn_max_recv_data_segment_length = 8192; + conn->conn_max_send_data_segment_length = 8192; + conn->conn_max_burst_length = 262144; + conn->conn_first_burst_length = 65536; conn->conn_iscsi_fd = iscsi_fd; conn->conn_session_id = request->idr_session_id; @@ -190,31 +192,28 @@ connection_new(int iscsi_fd, const struc */ isl = &conn->conn_limits; memcpy(isl, &request->idr_limits, sizeof(*isl)); - if (isl->isl_max_recv_data_segment_length == 0) { - conn->conn_max_recv_data_segment_length = 8192; - conn->conn_max_send_data_segment_length = 8192; - isl->isl_max_recv_data_segment_length = 8192; - } else { - conn->conn_max_recv_data_segment_length = - isl->isl_max_recv_data_segment_length; - conn->conn_max_send_data_segment_length = - isl->isl_max_recv_data_segment_length; - } - if (isl->isl_max_send_data_segment_length == 0) { + if (isl->isl_max_recv_data_segment_length == 0) + isl->isl_max_recv_data_segment_length = (1 << 24) - 1; + if (isl->isl_max_send_data_segment_length == 0) isl->isl_max_send_data_segment_length = isl->isl_max_recv_data_segment_length; - } else { + if (isl->isl_max_burst_length == 0) + isl->isl_max_burst_length = (1 << 24) - 1; + if (isl->isl_first_burst_length == 0) + isl->isl_first_burst_length = (1 << 24) - 1; + if (isl->isl_first_burst_length > isl->isl_max_burst_length) + isl->isl_first_burst_length = isl->isl_max_burst_length; + + /* + * Limit default send length in case it won't be negotiated. + * We can't do it for other limits, since they may affect both + * sender and receiver operation, and we must obey defaults. + */ + if (conn->conn_max_send_data_segment_length > + isl->isl_max_send_data_segment_length) { conn->conn_max_send_data_segment_length = isl->isl_max_send_data_segment_length; } - if (isl->isl_max_burst_length == 0) - isl->isl_max_burst_length = conn->conn_max_burst_length; - if (isl->isl_first_burst_length == 0) { - if (isl->isl_max_burst_length < (int)conn->conn_first_burst_length) - isl->isl_first_burst_length = isl->isl_max_burst_length; - else - isl->isl_first_burst_length = conn->conn_first_burst_length; - } from_addr = conn->conn_conf.isc_initiator_addr; to_addr = conn->conn_conf.isc_target_addr; Modified: projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/iscsid.h ============================================================================== --- projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/iscsid.h Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/iscsid.h Sun Jan 15 09:33:29 2017 (r312218) @@ -44,8 +44,6 @@ #define CONN_MUTUAL_CHALLENGE_LEN 1024 #define SOCKBUF_SIZE 1048576 -#define MAX_BURST_LENGTH (256 * 1024) -#define FIRST_BURST_LENGTH (128 * 1024) struct connection { int conn_iscsi_fd; Modified: projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/login.c ============================================================================== --- projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/login.c Sun Jan 15 09:31:14 2017 (r312217) +++ projects/netbsd-tests-upstream-01-2017/usr.sbin/iscsid/login.c Sun Jan 15 09:33:29 2017 (r312218) @@ -397,6 +397,9 @@ login_negotiate_key(struct connection *c tmp = isl->isl_max_send_data_segment_length; } conn->conn_max_send_data_segment_length = tmp; + /* We received target's limit, that means it accepted our's. */ + conn->conn_max_recv_data_segment_length = + isl->isl_max_recv_data_segment_length; } else if (strcmp(name, "MaxBurstLength") == 0) { tmp = strtoul(value, NULL, 10); if (tmp <= 0)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201701150933.v0F9XTps073828>