Home | History | Annotate | Download | only in dev
History log of /src/sys/arch/sparc64/dev/ldc.c
RevisionDateAuthorComments
 1.10  06-Feb-2025  palle sun4v ldc: fix 32-bit build
 1.9  05-Feb-2025  palle sun4v ldc: improve the ldc_send_xxx functions so they can print an error message and return a proper error code
 1.8  20-Dec-2023  thorpej branches: 1.8.2;
Remove unnecessary <sys/malloc.h>.
 1.7  05-Apr-2021  palle sun4v: Ignore spurious ldc CTRL/ACK/VERS messages (do not reset the connection anymore). Fixes occationals stalls when vdsk uses the ldc service. Observed on both T2000 and T5 host systems
 1.6  15-Oct-2019  chs branches: 1.6.10;
convert more KM_NOSLEEP to KM_SLEEP and remove code to handle failures.
 1.5  01-Oct-2019  chs in many device attach paths, allocate memory with KM_SLEEP instead of KM_NOSLEEP
and remove code to handle failures that can no longer happen.
 1.4  03-Sep-2018  riastradh Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int. The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER! Some subsystems have

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX. Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate. But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all. (Who knows, maybe in some cases integer
truncation is actually intended!)
 1.3  03-Mar-2017  palle branches: 1.3.12; 1.3.14; 1.3.16;
sun4v: Fixed PR 51554 - Avoid unsafe allocation in ldc/vdsk
 1.2  20-Aug-2016  nakayama branches: 1.2.2; 1.2.4; 1.2.6;
Avoid "cast to pointer from integer of different size" warning on
32-bit kernels.
 1.1  19-Aug-2016  palle sun4v: vdsk and ldc drivers - from OpenBSD, but heavily adapted to NetBSD scsipi - access to a virtual disk served from a ldom primary domain now works
 1.2.6.1  21-Apr-2017  bouyer Sync with HEAD
 1.2.4.3  28-Aug-2017  skrll Sync with HEAD
 1.2.4.2  05-Oct-2016  skrll Sync with HEAD
 1.2.4.1  20-Aug-2016  skrll file ldc.c was added on branch nick-nhusb on 2016-10-05 20:55:36 +0000
 1.2.2.3  20-Mar-2017  pgoyette Sync with HEAD
 1.2.2.2  14-Sep-2016  pgoyette Sync with HEAD
 1.2.2.1  20-Aug-2016  pgoyette file ldc.c was added on branch pgoyette-localcount on 2016-09-14 03:04:17 +0000
 1.3.16.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.3.16.1  10-Jun-2019  christos Sync with HEAD
 1.3.14.1  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.3.12.2  03-Dec-2017  jdolecek update from HEAD
 1.3.12.1  03-Mar-2017  jdolecek file ldc.c was added on branch tls-maxphys on 2017-12-03 11:36:44 +0000
 1.6.10.1  17-Apr-2021  thorpej Sync with HEAD.
 1.8.2.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed