Commit Graph

194947 Commits

Author SHA1 Message Date
Alexander Motin
8b94b5836c For both iSCSI initiator and target increase socket buffer sizes before
establishing connection.

This is a workaround for Chelsio TOE driver, that does not update socket
buffer size in hardware after connection established, and unless that is
done beforehand, kernel code will stuck, attempting to send/receive full
PDU at once.

MFC after:	1 week
2014-11-22 15:09:18 +00:00
Steven Hartland
14730efd7e Fix build with asr driver
This was broken by r274819 as asr is not in GENERIC because its not 64bit
safe.

MFC after:	1 month
X-MFC-With:	r274819
Sponsored by:	Multiplay
2014-11-22 14:59:50 +00:00
Ian Lepore
dbd3f10702 Add libm to eliminate "undefined reference to sqrt" on arm 'softfp' builds. 2014-11-22 14:53:50 +00:00
Baptiste Daroussin
dec0135828 Enforce -lpthread and -lc to always be the 2 last components of the link list
Differential Revision:	https://reviews.freebsd.org/D1118
Suggested by:		kib
2014-11-22 12:48:09 +00:00
Dimitry Andric
0c4bf57982 Fix the following -Werror warnings from clang 3.5.0, while building
usr.bin/locate:

usr.bin/locate/locate/util.c:249:29: error: taking the absolute value of unsigned type 'unsigned int' has no effect [-Werror,-Wabsolute-value]
                            MAXPATHLEN, abs(i) < abs(htonl(i)) ? i : htonl(i));
                                                 ^
usr.bin/locate/locate/util.c:249:29: note: remove the call to 'abs' since unsigned values cannot be negative
                            MAXPATHLEN, abs(i) < abs(htonl(i)) ? i : htonl(i));
                                                 ^~~
usr.bin/locate/locate/util.c:274:32: error: taking the absolute value of unsigned type 'unsigned int' has no effect [-Werror,-Wabsolute-value]
                            MAXPATHLEN, abs(word) < abs(htonl(word)) ? word :
                                                    ^
usr.bin/locate/locate/util.c:274:32: note: remove the call to 'abs' since unsigned values cannot be negative
                            MAXPATHLEN, abs(word) < abs(htonl(word)) ? word :
                                                    ^~~

The problem is that ntohl() always returns an unsigned quantity.  In
this case, it's expected to be cast back to a signed integer, but to
stop complaints about abs() we just store it into an integer, and don't
call ntohl() again.

Reviewed by:	ngie
MFC after:	3 days
Differential Revision: https://reviews.freebsd.org/D1196
2014-11-22 12:13:05 +00:00
Dimitry Andric
fdaadf20c4 Fix the following -Werror warning from clang 3.5.0, while building
usr.bin/cpio on amd64 (or any arch with 64-bit time_t):

contrib/libarchive/cpio/cpio.c:1143:6: error: absolute value function 'abs' given an argument of type 'long' but has parameter of type 'int' which may cause truncation of value [-Werror,-Wabsolute-value]
        if (abs(mtime - now) > (365/2)*86400)
            ^
contrib/libarchive/cpio/cpio.c:1143:6: note: use function 'labs' instead
        if (abs(mtime - now) > (365/2)*86400)
            ^~~
            labs
1 error generated.

This is because time_t is a long on amd64. To avoid the warning, just
copy the equivalent test from a few lines before, which is used in the
Windows case, and which is type safe.

Reviewed by:	emaste
MFC after:	3 days
Differential Revision: https://reviews.freebsd.org/D1198
2014-11-22 12:10:09 +00:00
Alexander Motin
73e2e95d94 Fix use-after-free introduced in r274843.
I've missed that iscsi_outstanding_remove() frees the second pointer,
so it should no longer be used.  And in fact we don't really need to.

MFC after:	2 weeks
2014-11-22 09:45:32 +00:00
Alexander Motin
c215ad3aa8 Move icl_pdu_get_data() and xpt_done() out of initiator's session lock.
During heavy reads data copying in icl_pdu_get_data() may consume large
percent of CPU time.  Moving it out of the lock significantly reduces
lock hold time and respectively lock congestion on read operations.

MFC after:	2 weeks
2014-11-22 09:05:54 +00:00
Hans Petter Selasky
4f27ddac0e Use correct length mask for split transactions. The hardware would
sometimes put non-zero values in the upper length bits, which are
available for high-speed-only USB transactions, breaking the reception
of data.
2014-11-22 08:47:04 +00:00
Hiroki Sato
c474372803 Remove examples of gif_interfaces and gifconfig. These have already been
marked as deprecated in rc.conf(5) manual page but these examples
were still here.

Spotted by:	jmg
2014-11-22 08:09:26 +00:00
Alexander Motin
94ab1f3693 Make iSCSI frontend less chatty while waiting for tasks termination.
MFC after:	1 week
2014-11-22 04:40:24 +00:00
Ian Lepore
0beab155a6 When doing a PREREAD sync of an mbuf-type dma buffer, do a writeback of
the first cacheline if the buffer start address is not on a cacheline
boundary.  Normally a buffer which is not cacheline-aligned is bounced,
but a special rule applies for mbufs, which are always misaligned due to
the header.  We know the cpu will not write to the header while dma is in
progress (so we've been told anyway), but it may have written to the
header shortly before starting a read, so we need to flush that write out
to memory before invalidating the whole buffer.

In collaboration with Mical Meloun and Svata Kraus.
2014-11-22 03:03:11 +00:00
Baptiste Daroussin
c501e7de0a Revert accidently message Makefile from 274836 and connect soeliminate(1) 2014-11-22 01:27:45 +00:00
Baptiste Daroussin
68d12e1fae Add a new soeliminate(1) command
mandoc(1) does not provide an equivalent of the GNU groff's soelim(1) as an
external binary. It does provide the funcitonnality but internally.

Lots if manpages in ports uses ".so" directives to include the content of
another manpage, which works properly if the manpages are not compressed.
With compressed manpages it will fail. So we need to preprocess those manpages
with soelim(1) before compressing them.

soeliminate(1) add the minimum functionnality from soelim(1) required for that
task, in order to still be able to prepare properly those manpages in case we
ship the base system only with mandoc as a manpage renderer.

soeliminate(1) accept all the arguments from soelim(1) for compatibility but
only '-I dir' is really functionnal.

Name it soeliminate and not soelim, so groff from base or ports can still call
soelim(1) for its internal use and avoid potential incompatibilities

MFC after:	1 month
2014-11-22 01:22:03 +00:00
Davide Italiano
0a4102656e Use the correct variable name. 2014-11-22 00:42:30 +00:00
Davide Italiano
c38b12220f Make ufs_dirhashreclaimperc a percentage for real and
rename it to ufs_dirhashreclaimpercent, as suggested
by jhb@. As an added bonus this avoids divide-by-zero
errors.

Requested by:	jhb, markj
Reviewied by:	jhb, markj
2014-11-22 00:37:37 +00:00
Warner Losh
fb90c28e23 Sort -K option before -k rather than at the top.
MFC after:	1 week
2014-11-21 23:04:12 +00:00
Brooks Davis
a9332fb303 Merge from CheriBSD:
commit 6d3c4c09226ad6bdd662e3e52489ef294a6ce298
    Add terasic_mtl vt(4) framebuffer driver

    terasic_mtl can be built with syscons(4) and vt(4) attachments, selected
    at compile time.

commit 33240259b47a7c990a5a88a19f133a5600432a4c
    Clear terasic_mtl text buffer on attach

commit d188c2d2412953f949624aa35cd07082830943c9
    Update terasic vt(4) driver for FreeBSD r269783

commit d1cc54eee852fa4fc9d359d5bb2171d24ec73369
    Safety belt to ensure vt(4) fb parameters are correct

commit 76e6d468ef45711d7952786095fc4791289ebb4b
    Improve terasic_mtl_vt fdt parsing

    - Use OF_getencprop to avoid need for explicit endian handling
      (submitted by ray@freebsd.org)
    - Check for expected length and correct pointer type

commit 3e2524b8995ab66e8a9295e4c87cbc7126eeddf4
    Correct device_printf usage

commit 9e53e3c8e0766414e25662c95b09cc51c92443b0
    Switch framebuffer to match host endianness

    Xorg and xf86-video-scfb work much better with a native-endian
    framebuffer.

commit 0f49259d596321ed85288ac0e1fb4ee1c966df48
    Switch DE4 to vt(4) and enable kbdmux

commit 5bc96ebc89db7d134ad478335090c8477c1677c7
    Add missing \n in device_printf calls

Submitted by:	emaste
Sponsored by:	DARPA, AFRL
2014-11-21 21:34:19 +00:00
Ian Lepore
233024d933 Document the recent enhancements for configuring bus speed in iicbus(4).
Differential Revision:        https://reviews.freebsd.org/D1182
PR:		195009
2014-11-21 21:30:08 +00:00
Brooks Davis
a1f76946d5 Merge from CheriBSD:
commit d0c7d235c09fc65dbdb278e7016a96f79c6a49cc
    Make the Altera JTAG UART device driver slightly more forgiving of
    the foibles of a sub-par hrdware interface by increasing the timeout
    for spotting JTAG polling from one to two seconds.

commit 19ed45a18832560dab967c179d83b71081c3a220
    Update comment.

commit 8edfe803f033cc8e33229f99894c2b7496a44d5f
    Add a comment about a device-driver race condition that could cause the BERI
    pipeline to wedge awaiting JTAG in the event that both the low-level console
    and the tty layer decide to write to the JTAG FIFO just before JTAG is
    disconnected.  Resolving this race is a bit tricky as it looks like there
    isn't a way to 'give the character back' to the tty layer when we discover
    the race.  The easy fix is to drop the character, which we don't yet do, but
    perhaps should as that is a better outcome than wedging the pipeline.

commit 2ea26cf579c9defcf31e413e7c9b0fbc159237fc
    Add a comment about an inherent race with hardware in the Altera JTAG
    UART's low-level console code.

Submitted by:	rwatson
MFC after:	1 week
Sponsored by:	DARPA, AFRL
2014-11-21 21:14:05 +00:00
Brooks Davis
9d88fc7ce3 Merge from CheriBSD (2e28d2a3090239b30481f35dc452ad95a5c57389)
Remove initalized, but unused devname variable

MFC after:	1 week
Sponsored by:	DARPA, AFRL
2014-11-21 21:10:02 +00:00
Steven Hartland
85c9dd9d89 Prevent overflow issues in timeout processing
Previously, any timeout value for which (timeout * hz) will overflow the
signed integer, will give weird results, since callout(9) routines will
convert negative values of ticks to '1'. For unsigned integer overflow we
will get sufficiently smaller timeout values than expected.

Switch from callout_reset, which requires conversion to int based ticks
to callout_reset_sbt to avoid this.

Also correct isci to correctly resolve ccb timeout.

This was based on the original work done by Eygene Ryabinkin
<rea@freebsd.org> back in 5 Aug 2011 which used a macro to help avoid
the overlow.

Differential Revision:	https://reviews.freebsd.org/D1157
Reviewed by:	mav, davide
MFC after:	1 month
Sponsored by:	Multiplay
2014-11-21 21:01:24 +00:00
Brooks Davis
7db6c5cde6 Merge from CheriBSD (3422ebe71b6c06fe78b1be73623b240c219e08e3):
Rename beripic to beripic0.

MFC after:	1 week
Sponsored by:	DARPA, AFRL
2014-11-21 20:54:12 +00:00
John Baldwin
180e57e5c7 Improve support for XSAVE with debuggers.
- Dump an NT_X86_XSTATE note if XSAVE is in use. This note is designed
  to match what Linux does in that 1) it dumps the entire XSAVE area
  including the fxsave state, and 2) it stashes a copy of the current
  xsave mask in the unused padding between the fxsave state and the
  xstate header at the same location used by Linux.
- Teach readelf() to recognize NT_X86_XSTATE notes.
- Change PT_GET/SETXSTATE to take the entire XSAVE state instead of
  only the extra portion. This avoids having to always make two
  ptrace() calls to get or set the full XSAVE state.
- Add a PT_GET_XSTATE_INFO which returns the length of the current
  XSTATE save area (so the size of the buffer needed for PT_GETXSTATE)
  and the current XSAVE mask (%xcr0).

Differential Revision:	https://reviews.freebsd.org/D1193
Reviewed by:	kib
MFC after:	2 weeks
2014-11-21 20:53:17 +00:00
Brooks Davis
1e7bf26b33 Add FPU support for MIPS setjmp(3)/longjmp(3).
This change saves/restores the callee-saved MIPS floating point
registers as documented by the o32/n32/n64 spec ("MIPSpro N32
ABI Handbook", Table 2-1) for the _setjmp(3), _longjmp(3),
setjmp(3) and longjmp(3) C library functions.  This is only
included when the C library is built with hardware floating point
support (or when "SOFTFLOAT" is not defined).

Submitted by:	sson
MFC after:	1 month
Sponsored by:	DARPA, AFRL
2014-11-21 20:02:06 +00:00
Brooks Davis
0e97688fe1 Slightly alter the handling of LOCAL_LIB_DIRS to skip addition of
directories in LOCAL_LIB_DIRS if they are subdirectories of directories
listed in LOCAL_DIRS.  This allows a hierarchy like:

	foo
	foo/lib
	foo/usr.bin
	foo/usr.sbin

to be supported with LOCAL_DIRS=foo LOCAL_DIRS=foo/lib.

MFC after:	1 week
Sponsored by:	DARPA, AFRL
2014-11-21 18:35:48 +00:00
Brooks Davis
e163efb6c7 Add a guard against attempting to invoke the buildenv target with -j# as
that silently exits rather than doing something useful.

MFC after:	1 week
Sponsored by:	DARPA, AFRL
2014-11-21 18:18:37 +00:00
Alexander Motin
6f58afed59 Make cfiscsi_offline() synchronous, waiting for connections termination
before return.  This should make ctld restart more clean and predictable.

MFC after:	2 weeks
2014-11-21 18:05:02 +00:00
Alexander Motin
6de78f9f24 In conf_apply() remove iSCSI ports from kernel before removing LUNs.
Previous order confused initiators with messages about "removed" LUNs
during simple ctld restart without any real config change.  After this
commit initiators only reestablish lost connection, receive "Power on
occurred" UNIT ATTENTION status and continue normal operation.

MFC after:	1 month
2014-11-21 18:00:00 +00:00
Craig Rodrigues
abf832a879 Create a vimage.9 link to vnet.9
Requested by: glebius
2014-11-21 17:57:37 +00:00
Craig Rodrigues
7502a3d8f6 Make MLINKS text match text in bsd.man.mk added by wosch@ in 1996. 2014-11-21 17:55:38 +00:00
Edward Tomasz Napierala
9f4958782a Fix error handling.
MFC after:	1 month
Coverity CID:	1249768
Sponsored by:	The FreeBSD Foundation
2014-11-21 16:14:32 +00:00
Edward Tomasz Napierala
a675fdbf5f Document use of wildcards (*) and ampersands (&) in autofs map files.
Differential Revision:	https://reviews.freebsd.org/D1199
Reviewed by:	wblock@
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2014-11-21 15:49:41 +00:00
Alexander Motin
9a3e44f9c5 Close race between cfiscsi_offline() and new connection arrival.
Incoming connection should be either rejected or accepted and terminated.
2014-11-21 15:38:31 +00:00
Nick Hibma
40dd22f4fb Simply remove the tmp dir before creating the symlink. We are doing
chroots all over the place, so there is bound to be a stale file lying
around in there (in my case samba lock files from creating accounts). If
we don't do that, the symlink later will fail.
2014-11-21 14:53:42 +00:00
Edward Tomasz Napierala
e48bb73a2a Add missing error checking for kernel_port_{add,remove}(). Both can fail
for reasons yet unknown; don't make it increment cumulated_error as a kind
of temporary workaround.

MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2014-11-21 12:35:18 +00:00
Alexander Motin
c6ceed4f7a Remove bunch of unused lun variables.
MFC after:	1 week
2014-11-21 11:21:39 +00:00
Alexander Motin
00dfef9e94 Reduce race between LUN destruction and request arrival.
MFC after:	1 week
2014-11-21 11:20:24 +00:00
Bjoern A. Zeeb
85e69de2ff Fix build for certain MIPS kernels hiding an unused variable under #ifndef. 2014-11-21 10:47:29 +00:00
Alexander Motin
c82bf2659b Log errors for absent LUNs too.
MFC after:	1 week
2014-11-21 08:24:37 +00:00
Alexander Motin
23b30f5600 Partially reconstruct Active/Standby clusting.
In this mode one head is in Active state, supporting all commands, while
another is in Standby state, supporting only minimal LUN discovery subset.

It is still incomplete since Standby state requires reservation support,
which is impossible to do right without having interlink between heads.
But it allows to run some basic experiments.
2014-11-21 06:27:37 +00:00
Edward Tomasz Napierala
836856e3e6 Fix smbfs to not zero out statfs f_flags field. Previously, this
made getmntinfo() return empty flags for smbfs filesystems when
called with MNT_WAIT. It's not visible with mount(8), since it uses
MNT_NOWAIT, but broke autounmount(8) operation.

PR:		195161
Differential Revision:	https://reviews.freebsd.org/D1194
Reviewed by:	kib@
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
2014-11-21 06:21:39 +00:00
Justin Hibbits
69e45c755c Fix the powerpc64 build.
Pointy-hat to:	me
X-MFC-with:	r274735
2014-11-21 02:45:39 +00:00
Ed Maste
688fd61ae8 Use canonical __PIC__ flag
It is automatically set when -fPIC is passed to the compiler.

Reviewed by:	dim, kib
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D1179
2014-11-21 02:05:48 +00:00
Warner Losh
009ad003a2 Recommit r274750. 2014-11-21 01:43:55 +00:00
Ed Maste
201b654e38 Clamp too-large hwpmc callchaindepth to the maximum
If the depth requested by the user is too large, it's better to provide
the maximum than the smaller default.

Sponsored by:	The FreeBSD Foundation
2014-11-20 23:16:19 +00:00
Warner Losh
adafc9d6e7 Back our r274750 until discussions on proper fix are over. 2014-11-20 21:18:19 +00:00
John Baldwin
a92cf726f8 Lock the scsi_low code and the drivers which use it along with other
related cleanups:
- Require each driver to initalize a mutex in the scsi_low_softc that
  is shared with the scsi_low code.  This mutex is used for CAM SIMs,
  timers, and interrupt handlers.
- Replace the osdep function switch with direct calls to the relevant
  CAM functions and direct manipulation of timers via callout(9).
- Collapse the CAM-specific scsi_low_osdep_interface substructure
  directly into scsi_low_softc.
- Use bus_*() instead of bus_space_*().
- Return BUS_PROBE_DEFAULT from probe routines instead of 0.
- No need to zero softcs.
- Pass 0ul and ~0ul instead of 0 and ~0 to bus_alloc_resource().
- Spell "dettach" as "detach".
- Remove unused 'dvname' variables.
- De-spl().

Tested by:	no one
2014-11-20 20:50:05 +00:00
John Baldwin
87c4a62333 Lock spic(4) and mark it MPSAFE:
- Add a per-softc mutex as a driver lock.
- Use callout(9) instead of timeout(9).
- Set softc pointer in si_drv1 of cdev instead of looking softc
  up via devclass in cdev methods.

Tested by:	no one
2014-11-20 20:24:30 +00:00
John Baldwin
7e88c64c79 Various fixes for wl(4):
- Don't recurse driver mutex.
- Don't hold driver mutex across fubyte/subyte.
- Replace fubyte/subyte loops with copyin/copyout calls.
- Use relatively sane locking in wl_ioctl().
- Use bus space accessors instead of in*()/out*().
- Use callout(9) instead of timeout(9).
- Stop watchdog timer in detach and don't hold mutex across
  bus_teardown_intr().
- Use device_printf() and if_printf().
- De-spl().

Tested by:	no one
2014-11-20 20:09:18 +00:00