Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/ld_cac.c
RevisionDateAuthorComments
 1.32  13-Apr-2025  rin ld(4): Convert blkno argument for sc_dump() to daddr_t

PR kern/59153

(1) For backends that accept 64-bit block address, i.e.,
nvme(4), virtio(4), aac(4), iop(4), and mainbus(usermode/4),
this should enable to dump beyond 2Gi blocks.

(2) sdmmc(4) backend allows to dump up to the last block.

(3) For other backends, block address is handled as `int`.
Some of them may support blocks up to 4Gi, but I do not have
enough time to examine datasheets. So, continue to reject >2Gi
blocks as before.

XXX
This is KABI change, and cannot be pulled up into netbsd-{10,9}.

XXX
Compile-test only (for amd64/ALL) due to lack of large SSDs ;)

Thanks mlelstv@ for discussion and careful review!!
 1.31  09-Aug-2017  mlelstv While ld(4) is MP safe, many backends are not.

Add a flag for backends that are MP safe. Take KERNEL_LOCK when calling
into a backend that doesn't have the flag set. Do the same for the
discard routine.

Fixes PR 52462.
 1.30  27-Sep-2016  pgoyette branches: 1.30.8;
Modularize the ld driver and all of its attachments. Ensure that all
parents are capable of rescan (or otherwise provide a means of attaching
children post-initialization).
 1.29  16-Sep-2016  jdolecek modify ldattach() to have default strategy as a parameter
 1.28  13-Apr-2015  riastradh branches: 1.28.2;
Convert sys/dev to use <sys/rndsource.h>.
 1.27  24-Feb-2012  mhitch branches: 1.27.2; 1.27.16;
Reserve a CCB for the driver. Stops the annoying cac0: unable to alloc CCB
messages.
 1.26  02-Feb-2012  tls branches: 1.26.2;
Entropy-pool implementation move and cleanup.

1) Move core entropy-pool code and source/sink/sample management code
to sys/kern from sys/dev.

2) Remove use of NRND as test for presence of entropy-pool code throughout
source tree.

3) Remove use of RND_ENABLED in device drivers as microoptimization to
avoid expensive operations on disabled entropy sources; make the
rnd_add calls do this directly so all callers benefit.

4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might
have lead to slight entropy overestimation for some sources.

5) Add new source types for environmental sensors, power sensors, VM
system events, and skew between clocks, with a sample implementation
for each.

ok releng to go in before the branch due to the difficulty of later
pullup (widespread #ifdef removal and moved files). Tested with release
builds on amd64 and evbarm and live testing on amd64.
 1.25  12-May-2009  cegger branches: 1.25.12; 1.25.16;
struct device * -> device_t, no functional changes intended.
 1.24  21-Mar-2009  ad Fix the *third* break to this driver from sloppy device_t conversion.
 1.23  04-Dec-2008  ad branches: 1.23.4;
PR kern/40099 device_t/softc split broke cac(4)/ld(4): panic: iostat_unbusy
 1.22  09-Sep-2008  tron branches: 1.22.2; 1.22.4;
Complete device_t/softc split for the ld(4) attachments. This should
prevent crashes while attaching a drive.

Patch supplied by Juan RP in PR kern/39468.
 1.21  28-Apr-2008  martin branches: 1.21.2; 1.21.6;
Remove clause 3 and 4 from TNF licenses
 1.20  08-Apr-2008  cegger branches: 1.20.2; 1.20.4;
use aprint_*_dev and device_xname
 1.19  19-Oct-2007  ad branches: 1.19.16;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.18  29-Jul-2007  ad branches: 1.18.4; 1.18.6; 1.18.10; 1.18.12;
It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.17  09-Feb-2007  ad branches: 1.17.6; 1.17.14;
Merge newlock2 to head.
 1.16  28-Nov-2006  ad Improve error handling. Related to PR/21900.
 1.15  16-Nov-2006  christos __unused removal on arguments; approved by core.
 1.14  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.13  25-Mar-2006  thorpej branches: 1.13.8; 1.13.10;
Use device_parent().
 1.12  11-Dec-2005  christos branches: 1.12.4; 1.12.6; 1.12.8; 1.12.10; 1.12.12;
merge ktrace-lwp.
 1.11  27-Feb-2005  perry branches: 1.11.4;
nuke trailing whitespace
 1.10  08-Feb-2005  briggs Use aprint_*() instead of printf() at attach time.
 1.9  28-Oct-2004  yamt branches: 1.9.4; 1.9.6;
move buffer queue related stuffs from buf.h to their own header, bufq.h.
 1.8  02-Oct-2002  thorpej branches: 1.8.6;
Add trailing ; to CFATTACH_DECL.
 1.7  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.6  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.5  25-Jan-2002  ad - Always validate the return value read from the outbound FIFO.
- Copy access method info into the softc so we don't double dereference.
- Remove static on functions.
 1.4  13-Nov-2001  lukem add/cleanup RCSID
 1.3  10-Jun-2001  ad branches: 1.3.2; 1.3.8;
Centralise the geometry fudge.
 1.2  11-Dec-2000  ad branches: 1.2.2;
Report soft-errors-per-unit once per minute at most.
 1.1  26-Nov-2000  ad branches: 1.1.2;
lsu -> ld, by popular request.
 1.1.2.3  13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.1.2.2  08-Dec-2000  bouyer Sync with HEAD.
 1.1.2.1  26-Nov-2000  bouyer file ld_cac.c was added on branch thorpej_scsipi on 2000-12-08 09:12:23 +0000
 1.2.2.4  18-Oct-2002  nathanw Catch up to -current.
 1.2.2.3  28-Feb-2002  nathanw Catch up to -current.
 1.2.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.2.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.3.8.3  29-Jan-2002  he Pull up revision 1.5 (requested by ad):
Some fixes:
o Always validate return value read from outbound FIFO
o Copy access method into to softc to avoid double dereference
o Remove static on functions
Fixes PR#14453.
 1.3.8.2  25-Oct-2001  he Pull up revisions 1.1-1.3 (requested by ad):
Add Mylex DACC960, CAC-EISA, and I2O block/SCSI drivers.
 1.3.8.1  10-Jun-2001  he file ld_cac.c was added on branch netbsd-1-5 on 2001-10-25 17:54:04 +0000
 1.3.2.3  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.3.2.2  11-Feb-2002  jdolecek Sync w/ -current.
 1.3.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.6.3  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.8.6.2  09-Feb-2005  skrll Sync with HEAD.
 1.8.6.1  02-Nov-2004  skrll Sync with HEAD.
 1.9.6.2  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.9.6.1  12-Feb-2005  yamt sync with head.
 1.9.4.1  29-Apr-2005  kent sync with -current
 1.11.4.5  27-Oct-2007  yamt sync with head.
 1.11.4.4  03-Sep-2007  yamt sync with head.
 1.11.4.3  26-Feb-2007  yamt sync with head.
 1.11.4.2  30-Dec-2006  yamt sync with head.
 1.11.4.1  21-Jun-2006  yamt sync with head.
 1.12.12.1  28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.12.10.1  19-Apr-2006  elad sync with head.
 1.12.8.1  01-Apr-2006  yamt sync with head.
 1.12.6.1  22-Apr-2006  simonb Sync with head.
 1.12.4.1  09-Sep-2006  rpaulo sync with head
 1.13.10.2  10-Dec-2006  yamt sync with head.
 1.13.10.1  22-Oct-2006  yamt sync with head
 1.13.8.3  15-Jan-2007  ad MP locking.
 1.13.8.2  12-Jan-2007  ad Sync with head.
 1.13.8.1  18-Nov-2006  ad Sync with head.
 1.17.14.1  15-Aug-2007  skrll Sync with HEAD.
 1.17.6.3  23-Oct-2007  ad Sync with head.
 1.17.6.2  19-Aug-2007  ad - Back out the biodone() changes.
- Eliminate B_ERROR (from HEAD).
 1.17.6.1  13-May-2007  ad - Pass the error number and residual count to biodone(), and let it handle
setting error indicators. Prepare to eliminate B_ERROR.
- Add a flag argument to brelse() to be set into the buf's flags, instead
of doing it directly. Typically used to set B_INVAL.
- Add a "struct cpu_info *" argument to kthread_create(), to be used to
create bound threads. Change "bool mpsafe" to "int flags".
- Allow exit of LWPs in the IDL state when (l != curlwp).
- More locking fixes & conversion to the new API.
 1.18.12.2  29-Jul-2007  ad It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.18.12.1  29-Jul-2007  ad file ld_cac.c was added on branch matt-mips64 on 2007-07-29 12:50:21 +0000
 1.18.10.1  25-Oct-2007  bouyer Sync with HEAD.
 1.18.6.1  06-Nov-2007  matt sync with HEAD
 1.18.4.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.19.16.3  17-Jan-2009  mjf Sync with HEAD.
 1.19.16.2  28-Sep-2008  mjf Sync with HEAD.
 1.19.16.1  02-Jun-2008  mjf Sync with HEAD.
 1.20.4.3  16-May-2009  yamt sync with head
 1.20.4.2  04-May-2009  yamt sync with head.
 1.20.4.1  16-May-2008  yamt sync with head.
 1.20.2.1  18-May-2008  yamt sync with head.
 1.21.6.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.21.6.1  19-Oct-2008  haad Sync with HEAD.
 1.21.2.1  24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.22.4.2  24-Mar-2009  snj Pull up following revision(s) (requested by ad in ticket #599):
sys/dev/ic/ld_cac.c: revision 1.24
Fix the *third* break to this driver from sloppy device_t conversion.
 1.22.4.1  13-Dec-2008  bouyer Pull up following revision(s) (requested by mhitch in ticket #186):
sys/dev/ic/ld_cac.c: revision 1.23
PR kern/40099 device_t/softc split broke cac(4)/ld(4): panic: iostat_unbusy
 1.22.2.2  28-Apr-2009  skrll Sync with HEAD.
 1.22.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.23.4.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.25.16.2  04-Mar-2012  mrg sync to latest -current.
 1.25.16.1  18-Feb-2012  mrg merge to -current.
 1.25.12.1  17-Apr-2012  yamt sync with head
 1.26.2.1  09-May-2012  riz Pull up following revision(s) (requested by macallan in ticket #240):
sys/dev/ic/ld_cac.c: revision 1.27
Reserve a CCB for the driver. Stops the annoying cac0: unable to alloc CCB
messages.
 1.27.16.3  28-Aug-2017  skrll Sync with HEAD
 1.27.16.2  05-Oct-2016  skrll Sync with HEAD
 1.27.16.1  06-Jun-2015  skrll Sync with HEAD
 1.27.2.1  03-Dec-2017  jdolecek update from HEAD
 1.28.2.1  04-Nov-2016  pgoyette Sync with HEAD
 1.30.8.1  01-Sep-2017  martin Pull up following revision(s) (requested by mlelstv in ticket #261):
sys/dev/sdmmc/ld_sdmmc.c: revision 1.32
sys/dev/sdmmc/ld_sdmmc.c: revision 1.33
sys/dev/sdmmc/ld_sdmmc.c: revision 1.34
sys/dev/sdmmc/sdmmc_mem.c: revision 1.62
sys/dev/i2o/ld_iop.c: revision 1.39
sys/dev/ld.c: revision 1.102
sys/dev/ld.c: revision 1.103
sys/dev/dksubr.c: revision 1.98
sys/dev/dksubr.c: revision 1.99
sys/dev/sdmmc/sdmmcvar.h: revision 1.29
sys/dev/ic/ld_nvme.c: revision 1.17
sys/dev/ldvar.h: revision 1.31
sys/dev/ldvar.h: revision 1.32
sys/dev/ic/ld_cac.c: revision 1.31
sys/dev/pci/ld_virtio.c: revision 1.16
While ld(4) is MP safe, many backends are not.
Add a flag for backends that are MP safe. Take KERNEL_LOCK when calling
into a backend that doesn't have the flag set. Do the same for the
discard routine.
Fixes PR 52462.
Defer sdmmc discard operations to the sdmmc task queue. Fixes a panic
introduced by ld.c r1.102.
validate length for discard operation and split operation when byte length
doesn't fit into 'int'.
make the sc_discard interface for the ld backend asynchronous and
signal completion through new callback lddiscardend. Use a standard
struct buf to pass disk address and range instead of two off_t values.
make lddiscard synchronous again. This is a requirement of the current
ffs discard code.
Initialize error also in the case where len=0, which just succeeds.
while here, assert that the len is indeed non-negative. this is already
confirmed by sys_fdiscard, but let's be sure.
reported by: GCC, but with different compile flags

RSS XML Feed