The NetBSD Project

CVS log for src/sys/dev/pci/nvme_pci.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / dev / pci

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.37 / (download) - annotate - [select for diffs], Mon Aug 15 18:06:04 2022 UTC (18 months, 2 weeks ago) by pgoyette
Branch: MAIN
CVS Tags: triaxx-drm, thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, netbsd-10-base, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, bouyer-sunxi-drm-base, bouyer-sunxi-drm, HEAD
Changes since 1.36: +2 -3 lines
Diff to previous 1.36 (colored)

Remove stray debug line (already commented out)

Revision 1.36 / (download) - annotate - [select for diffs], Sat Jul 9 01:24:32 2022 UTC (19 months, 3 weeks ago) by pgoyette
Branch: MAIN
Changes since 1.35: +3 -3 lines
Diff to previous 1.35 (colored)

Remove redundant ``devsw_ok = false;''

Thanks mrg@

Revision 1.35 / (download) - annotate - [select for diffs], Fri Jul 8 17:32:19 2022 UTC (19 months, 3 weeks ago) by pgoyette
Branch: MAIN
Changes since 1.34: +10 -5 lines
Diff to previous 1.34 (colored)

devsw_ok needs to survive across invocations of nvme_modcmd() so
allocate it statically.

Should address remaining issues with kern/56914

Revision 1.34 / (download) - annotate - [select for diffs], Fri Jul 8 16:10:34 2022 UTC (19 months, 3 weeks ago) by pgoyette
Branch: MAIN
Changes since 1.33: +11 -5 lines
Diff to previous 1.33 (colored)

Initialize cmajor & bmajor so the devsw_attach() has a chance of
succeeding.

Record the success of devsw_attach(), and do not try later to
devsw_detach() unless the attach succeeded.

Partial fix for kern/56914

Revision 1.33 / (download) - annotate - [select for diffs], Thu Jul 7 23:54:17 2022 UTC (19 months, 4 weeks ago) by pgoyette
Branch: MAIN
Changes since 1.32: +4 -4 lines
Diff to previous 1.32 (colored)

Add errno tto message when fail to attach the devsw

Revision 1.32 / (download) - annotate - [select for diffs], Thu Mar 31 19:30:16 2022 UTC (23 months ago) by pgoyette
Branch: MAIN
Changes since 1.31: +10 -10 lines
Diff to previous 1.31 (colored)

For device modules that provide both auto-config and /dev/xxx
interfaces, make sure that initialization and destruction
follow the proper sequence.  This is triggered by the recent
changes to the devsw stuff; per riastradh@ the required call
sequence is:

	devsw_attach()
	config_init_component() or config_cf*_attach()
	...
	config_fini_component() or config_cf*_detach()
	devsw_detach()

While here, add a few missing calls to some of the detach
routines.

Testing of these changes has been limited to:
	1. compile without build break
	2. no related test failures from atf
	3. modload/modunload work as well as
	   before.

No functional device testing done, since I don't have any
of these devices.  Let me know of any damage I might cause
here!

XXX Some of the modules affected by this commit are already
XXX broken;  see kern/56772.  This commit does not break
any additional modules (as far as I know).

Revision 1.19.2.3 / (download) - annotate - [select for diffs], Fri Dec 3 19:45:13 2021 UTC (2 years, 3 months ago) by martin
Branch: netbsd-8
Changes since 1.19.2.2: +3 -3 lines
Diff to previous 1.19.2.2 (colored) to branchpoint 1.19 (colored) next main 1.20 (colored)

Pull up the following revisions, requested by msaitoh in ticket #1714:

	sys/dev/pci/pcireg.h			1.148-1.154, 1.156-1.161
	sys/dev/pci/pci_subr.c			1.217-1.222, 1.224, 1.227-1.232
						via patch
	sys/dev/pci/nvme_pci.c			1.31
	sys/dev/pci/pci.c			1.158
	sys/dev/pci/ppb.c			1.74

- Print Bridge Config Retry Enable bit and Retimer Presence Detect
  Supported bit.
- Add PCIe 4.0 stuff a little:
  - 10-bit Tag Requester/Completer.
  - Add Data link Feature extended capability.
  - Add Physical Layer 16.0 GT/s extended capability. Not decode yet.
- Change pci_conf_print() to allocate memory for the regs dynamically
  instead of on-stack.
- Print some DPC register values not with %04x but with %08x because
  those are 32bit.
- Fix a bug that the virtual channel extended configuration's
  arbitration phase register can't be decoded correctly.
- When parsing Enhanced Allocation entries, use the correct calculation
  for finding the next entry.
- Add 32.0GT/s to the list of pcie speeds (PCIe 5.x.).
- Add Some PCI config information:
  - Lane Margining at the Receiver
  - NVME admin interface
  - UFSHCI
  - InfiniBand
  - Host fabric
  - HDA 1.0 with vendor ext
  - USB4 HCI
  - MIPI I3C
  - Cellular controller/modem (+ Ethernet)
- Change PCI_VENDOR_MASK and PCI_PRODUCT_MASK to unsigned values, to
  prevent sign extension of product ID when shifted up into place in
  PCI_ID_CODE(). Fixes PR kern/56176.
- Add LCAP & LCAP2 definitions.
- Use PCI-SIG official acronyms for some macros.
- Remove unused shift and mask definitions.
- Fix typo in some messages.
- Fix typo in comments.
- Whitespace fixes.

Revision 1.26.4.2 / (download) - annotate - [select for diffs], Fri Dec 3 19:40:38 2021 UTC (2 years, 3 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-3-RELEASE
Changes since 1.26.4.1: +3 -3 lines
Diff to previous 1.26.4.1 (colored) to branchpoint 1.26 (colored) next main 1.27 (colored)

Pull up the following revisions, requested by msaitoh in ticket #1384:

	sys/dev/pci/pcireg.h			1.152-1.154, 1.156-1.161
	sys/dev/pci/pci_subr.c			1.222, 1.227-1.232 via patch
	sys/dev/pci/nvme_pci.c			1.31
	sys/dev/pci/pci.c			1.158, 1.163
	sys/dev/pci/ppb.c			1.74

- When parsing Enhanced Allocation entries, use the correct calculation
  for finding the next entry.
- Add 32.0GT/s to the list of pcie speeds (PCIe 5.x.).
- Add Some PCI config information:
  - Lane Margining at the Receiver
  - NVME admin interface
  - UFSHCI
  - InfiniBand
  - Host fabric
  - HDA 1.0 with vendor ext
  - USB4 HCI
  - MIPI I3C
  - Cellular controller/modem (+ Ethernet)
- Change PCI_VENDOR_MASK and PCI_PRODUCT_MASK to unsigned values, to
  prevent sign extension of product ID when shifted up into place in
  PCI_ID_CODE(). Fixes PR kern/56176.
- Add LCAP & LCAP2 definitions.
- Use PCI-SIG official acronyms for some macros.
- Fix typo in some messages.
- Fix typo in comments.
- Whitespace fixes.

Revision 1.31 / (download) - annotate - [select for diffs], Sun Oct 10 07:50:53 2021 UTC (2 years, 4 months ago) by skrll
Branch: MAIN
Changes since 1.30: +3 -3 lines
Diff to previous 1.30 (colored)

Catch up with pcireg.h change

Revision 1.26.4.1 / (download) - annotate - [select for diffs], Mon Jun 21 17:25:48 2021 UTC (2 years, 8 months ago) by martin
Branch: netbsd-9
Changes since 1.26: +33 -3 lines
Diff to previous 1.26 (colored)

Pull up following revision(s) (requested by riastradh in ticket #1305):

	sys/dev/ic/nvmevar.h: revision 1.22
	sys/dev/ic/nvme.c: revision 1.56
	sys/dev/ic/nvme.c: revision 1.57
	sys/dev/pci/nvme_pci.c: revision 1.30

nvme(4): Add suspend/resume, derived from OpenBSD.

nvme(4): Move disestablishment of admin q interrupt to nvme_detach.

Nothing re-established this after suspend/resume, so attempting
suspend/resume/suspend would crash, and presumably we would miss
interrupts after resume.  This keeps the establish/disestablish more
symmetric in attach/detach.

Revision 1.29.6.1 / (download) - annotate - [select for diffs], Thu Jun 17 04:46:29 2021 UTC (2 years, 8 months ago) by thorpej
Branch: thorpej-i2c-spi-conf
Changes since 1.29: +33 -3 lines
Diff to previous 1.29 (colored) next main 1.30 (colored)

Sync w/ HEAD.

Revision 1.29.8.1 / (download) - annotate - [select for diffs], Mon May 31 22:15:18 2021 UTC (2 years, 9 months ago) by cjep
Branch: cjep_staticlib_x
Changes since 1.29: +33 -3 lines
Diff to previous 1.29 (colored) next main 1.30 (colored)

sync with head

Revision 1.30 / (download) - annotate - [select for diffs], Sat May 29 08:46:38 2021 UTC (2 years, 9 months ago) by riastradh
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-futex2-base, thorpej-futex2, thorpej-cfargs2-base, thorpej-cfargs2, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1
Changes since 1.29: +33 -3 lines
Diff to previous 1.29 (colored)

nvme(4): Add suspend/resume, derived from OpenBSD.

Revision 1.29 / (download) - annotate - [select for diffs], Wed Jul 29 07:14:45 2020 UTC (3 years, 7 months ago) by jdolecek
Branch: MAIN
CVS Tags: thorpej-futex-base, thorpej-futex, thorpej-cfargs-base, thorpej-cfargs, cjep_staticlib_x-base
Branch point for: thorpej-i2c-spi-conf, cjep_staticlib_x
Changes since 1.28: +5 -5 lines
Diff to previous 1.28 (colored)

rename label now that it has dual purpose; suggested by mrg@

Revision 1.28 / (download) - annotate - [select for diffs], Tue Jul 28 09:36:05 2020 UTC (3 years, 7 months ago) by jdolecek
Branch: MAIN
Changes since 1.27: +10 -6 lines
Diff to previous 1.27 (colored)

add a quirk to disable MSI, and enable it for Intel SSD DC P4500

this device seems to cause serious system responsiveness issues when configured
to use MSI, while it works fine when configured for either INTx or MSI-X

this is important so this works well under Xen Dom0, which doesn't
support MSI-X yet

fixes another issue reported as feedback for PR port-xen/55285 by Frank Kardel

Revision 1.20.2.2 / (download) - annotate - [select for diffs], Wed Apr 8 14:08:09 2020 UTC (3 years, 10 months ago) by martin
Branch: phil-wifi
Changes since 1.20.2.1: +3 -3 lines
Diff to previous 1.20.2.1 (colored) to branchpoint 1.20 (colored) next main 1.21 (colored)

Merge changes from current as of 20200406

Revision 1.27 / (download) - annotate - [select for diffs], Mon Dec 2 03:06:51 2019 UTC (4 years, 3 months ago) by msaitoh
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Changes since 1.26: +3 -3 lines
Diff to previous 1.26 (colored)

 Use PCI_MSIX_"TBL"BIR_MASK instead of PCI_MSIX_"PBA"BIR_MASK for MSI-X table.
This is not a real bug because both macros have the same value.

Revision 1.20.2.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:07:17 2019 UTC (4 years, 8 months ago) by christos
Branch: phil-wifi
Changes since 1.20: +32 -76 lines
Diff to previous 1.20 (colored)

Sync with HEAD

Revision 1.19.2.2 / (download) - annotate - [select for diffs], Sun Jan 27 18:35:19 2019 UTC (5 years, 1 month ago) by martin
Branch: netbsd-8
CVS Tags: netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1
Changes since 1.19.2.1: +14 -8 lines
Diff to previous 1.19.2.1 (colored) to branchpoint 1.19 (colored)

Pull up following revision(s) (requested by msaitoh in ticket #1172):

	sys/dev/pci/nvme_pci.c: revision 1.26
	sys/dev/pci/xhci_pci.c: revision 1.21
	sys/dev/pci/ixgbe/ixv.c: revision 1.108
	sys/dev/pci/ixgbe/ixgbe.c: revision 1.171
	sys/dev/pci/if_fxp_pci.c: revision 1.84
	sys/dev/pci/if_fxp_pci.c: revision 1.85
	sys/dev/pci/xhci_pci.c: revision 1.16

remove #ifdef DEBUG printf, it seems to have outlived it's usefulness

 -

  KNF. No functional change.

 -

  Nowadays some UEFI BIOSes don't enable some PCI devices' address decoding.
To resolve this problem, pci_map.c rev. 1.34-1.36 changed the
pci_mapreg_(sub)map()'s to set the decode bit if it's not set. It's good for
almost all drivers, but some other drivers don't use pci_mapreg_map().
In drivers which don't use pci_mapreg_map(), some of them explicitly enable
decoding but others don't. Add code to enable decoding to them.

  See also the following discussion:
	http://mail-index.netbsd.org/tech-kern/2017/03/22/msg021678.html

Revision 1.19.10.4 / (download) - annotate - [select for diffs], Sat Jan 26 22:00:07 2019 UTC (5 years, 1 month ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.19.10.3: +14 -8 lines
Diff to previous 1.19.10.3 (colored) to branchpoint 1.19 (colored) next main 1.20 (colored)

Sync with HEAD

Revision 1.26 / (download) - annotate - [select for diffs], Wed Jan 23 06:56:19 2019 UTC (5 years, 1 month ago) by msaitoh
Branch: MAIN
CVS Tags: phil-wifi-20191119, phil-wifi-20190609, pgoyette-compat-20190127, netbsd-9-base, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, isaki-audio2-base, isaki-audio2
Branch point for: netbsd-9
Changes since 1.25: +14 -8 lines
Diff to previous 1.25 (colored)

 Nowadays some UEFI BIOSes don't enable some PCI devices' address decoding.
To resolve this problem, pci_map.c rev. 1.34-1.36 changed the
pci_mapreg_(sub)map()'s to set the decode bit if it's not set. It's good for
almost all drivers, but some other drivers don't use pci_mapreg_map().
In drivers which don't use pci_mapreg_map(), some of them expilicitly enable
decoding but others don't. Add code to enable decoding to them.

 See also the following discussion:
	http://mail-index.netbsd.org/tech-kern/2017/03/22/msg021678.html

Revision 1.19.10.3 / (download) - annotate - [select for diffs], Wed Dec 26 14:01:50 2018 UTC (5 years, 2 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.19.10.2: +19 -69 lines
Diff to previous 1.19.10.2 (colored) to branchpoint 1.19 (colored)

Sync with HEAD, resolve a few conflicts

Revision 1.25 / (download) - annotate - [select for diffs], Fri Dec 7 08:52:43 2018 UTC (5 years, 2 months ago) by msaitoh
Branch: MAIN
CVS Tags: pgoyette-compat-20190118, pgoyette-compat-1226
Changes since 1.24: +4 -4 lines
Diff to previous 1.24 (colored)

No functional change. OK'd by nonaka:
- Use correct macro.
- Don't use magic number.

Revision 1.24 / (download) - annotate - [select for diffs], Sat Dec 1 13:32:55 2018 UTC (5 years, 3 months ago) by jdolecek
Branch: MAIN
Changes since 1.23: +3 -3 lines
Diff to previous 1.23 (colored)

fix pasto (MSI -> MSIX)

Revision 1.23 / (download) - annotate - [select for diffs], Sat Dec 1 13:31:48 2018 UTC (5 years, 3 months ago) by jdolecek
Branch: MAIN
Changes since 1.22: +5 -4 lines
Diff to previous 1.22 (colored)

allow MSI-X even with just one interrupt, on some systems MSI/INTx might
not be available (or working, for that matter)

Revision 1.22 / (download) - annotate - [select for diffs], Sat Dec 1 13:24:45 2018 UTC (5 years, 3 months ago) by jdolecek
Branch: MAIN
Changes since 1.21: +14 -65 lines
Diff to previous 1.21 (colored)

simplify the interrupt allocation - it's not necessary to do the explicit
fallbacks, pci_intr_alloc() does this already internally

Revision 1.19.10.2 / (download) - annotate - [select for diffs], Thu Sep 6 06:55:51 2018 UTC (5 years, 5 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.19.10.1: +3 -3 lines
Diff to previous 1.19.10.1 (colored) to branchpoint 1.19 (colored)

Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)

Revision 1.21 / (download) - annotate - [select for diffs], Mon Sep 3 16:29:32 2018 UTC (5 years, 6 months ago) by riastradh
Branch: MAIN
CVS Tags: pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906
Changes since 1.20: +3 -3 lines
Diff to previous 1.20 (colored)

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!)

Revision 1.19.10.1 / (download) - annotate - [select for diffs], Sun Apr 22 07:20:21 2018 UTC (5 years, 10 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.19: +42 -2 lines
Diff to previous 1.19 (colored)

Sync with HEAD

Revision 1.19.2.1 / (download) - annotate - [select for diffs], Thu Apr 19 15:37:56 2018 UTC (5 years, 10 months ago) by martin
Branch: netbsd-8
CVS Tags: netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1
Changes since 1.19: +42 -2 lines
Diff to previous 1.19 (colored)

Pull up following revision(s) (requested by nonaka in ticket #781):

	sbin/nvmectl/Makefile				1.4
	sbin/nvmectl/bignum.c				1.2
	sbin/nvmectl/devlist.c				1.3-1.5
	sbin/nvmectl/firmware.c				1.3,1.4
	sbin/nvmectl/identify.c				1.3-1.5
	sbin/nvmectl/logpage.c				1.5-1.7
	sbin/nvmectl/nvme.h				1.3
	sbin/nvmectl/nvmectl.8				1.5
	sbin/nvmectl/nvmectl.c				1.5-1.7
	sbin/nvmectl/nvmectl.h				1.5-1.8
	sbin/nvmectl/perftest.c				1.3-1.5
	sbin/nvmectl/power.c				1.3,1.4
	sbin/nvmectl/reset.c				1.2,1.3
	sbin/nvmectl/util.c				1.1,1.2
	sbin/nvmectl/wdc.c				1.2-1.4
	sys/dev/ic/ld_nvme.c				1.20
	sys/dev/ic/nvme.c				1.38,1.39
	sys/dev/ic/nvmeio.h				1.2
	sys/dev/ic/nvmereg.h				1.10,1.11
	sys/dev/ic/nvmevar.h				1.16
	sys/dev/pci/nvme_pci.c				1.20

nvmectl(8): Sync with FreeBSD nvmecontrol(8) r328763.

nvmectl(8): fix wdc command usage.

nvme(4): Added some delay before check RDY bit quirk when disabling device.
Pick from FreeBSD nvme(4) r326937.

Add some new structure fileds, opcodes and statuses from NVMe 1.3a.

nvmectl(8): Add big-endian support.
from FreeBSD nvmecontolr(8) r329824.

nvmectl(8): fix subcommand usage.

nvmectl(8): Remove some wdc subcommands from man page.
- wdc drive-log
- wdc get-crash-dump
- wdc purge
- wdc purge-monitor

Typos.

use setprogname()/getprogname(), do not hardcode the prognam name in fixed
strings

Revision 1.20 / (download) - annotate - [select for diffs], Wed Apr 18 10:05:59 2018 UTC (5 years, 10 months ago) by nonaka
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, jdolecek-ncqfixes-base, jdolecek-ncqfixes
Branch point for: phil-wifi
Changes since 1.19: +42 -2 lines
Diff to previous 1.19 (colored)

nvme(4): Added some delay before check RDY bit quirk when disabling device.

Pick from FreeBSD nvme(4) r326937.

Revision 1.19.8.2 / (download) - annotate - [select for diffs], Sun Dec 3 11:37:08 2017 UTC (6 years, 3 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.19.8.1: +499 -0 lines
Diff to previous 1.19.8.1 (colored) to branchpoint 1.19 (colored) next main 1.20 (colored)

update from HEAD

Revision 1.2.2.6 / (download) - annotate - [select for diffs], Mon Aug 28 17:52:06 2017 UTC (6 years, 6 months ago) by skrll
Branch: nick-nhusb
Changes since 1.2.2.5: +2 -16 lines
Diff to previous 1.2.2.5 (colored) to branchpoint 1.2 (colored) next main 1.3 (colored)

Sync with HEAD

Revision 1.19.8.1, Thu Jun 1 02:45:11 2017 UTC (6 years, 9 months ago) by jdolecek
Branch: tls-maxphys
Changes since 1.19: +0 -499 lines
FILE REMOVED

file nvme_pci.c was added on branch tls-maxphys on 2017-12-03 11:37:08 +0000

Revision 1.19 / (download) - annotate - [select for diffs], Thu Jun 1 02:45:11 2017 UTC (6 years, 9 months ago) by chs
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202, pgoyette-compat-base, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, netbsd-8-base, matt-nb8-mediatek-base, matt-nb8-mediatek
Branch point for: tls-maxphys, pgoyette-compat, netbsd-8
Changes since 1.18: +2 -15 lines
Diff to previous 1.18 (colored)

remove checks for failure after memory allocation calls that cannot fail:

  kmem_alloc() with KM_SLEEP
  kmem_zalloc() with KM_SLEEP
  percpu_alloc()
  pserialize_create()
  psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.

Revision 1.17.2.1 / (download) - annotate - [select for diffs], Fri Apr 21 16:53:48 2017 UTC (6 years, 10 months ago) by bouyer
Branch: bouyer-socketcan
Changes since 1.17: +2 -3 lines
Diff to previous 1.17 (colored) next main 1.18 (colored)

Sync with HEAD

Revision 1.4.2.3 / (download) - annotate - [select for diffs], Mon Mar 20 06:57:29 2017 UTC (6 years, 11 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.4.2.2: +2 -3 lines
Diff to previous 1.4.2.2 (colored) to branchpoint 1.4 (colored) next main 1.5 (colored)

Sync with HEAD

Revision 1.18 / (download) - annotate - [select for diffs], Mon Feb 13 04:42:15 2017 UTC (7 years ago) by nonaka
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, pgoyette-localcount-20170320, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1
Changes since 1.17: +2 -3 lines
Diff to previous 1.17 (colored)

remove extra crlf.

Revision 1.4.2.2 / (download) - annotate - [select for diffs], Sat Jan 7 08:56:33 2017 UTC (7 years, 1 month ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.4.2.1: +4 -42 lines
Diff to previous 1.4.2.1 (colored) to branchpoint 1.4 (colored)

Sync with HEAD.  (Note that most of these changes are simply $NetBSD$
tag issues.)

Revision 1.2.2.5 / (download) - annotate - [select for diffs], Mon Dec 5 10:55:03 2016 UTC (7 years, 3 months ago) by skrll
Branch: nick-nhusb
Changes since 1.2.2.4: +29 -73 lines
Diff to previous 1.2.2.4 (colored) to branchpoint 1.2 (colored)

Sync with HEAD

Revision 1.17 / (download) - annotate - [select for diffs], Fri Nov 25 12:14:49 2016 UTC (7 years, 3 months ago) by knakahara
Branch: MAIN
CVS Tags: pgoyette-localcount-20170107, nick-nhusb-base-20170204, nick-nhusb-base-20161204, bouyer-socketcan-base
Branch point for: bouyer-socketcan
Changes since 1.16: +4 -42 lines
Diff to previous 1.16 (colored)

"#ifdef __HAVE_PCI_MSI_MSIX" workaround is not required any more.

see sys/dev/pci/pci_stub.c r1.6

Revision 1.4.2.1 / (download) - annotate - [select for diffs], Fri Nov 4 14:49:10 2016 UTC (7 years, 4 months ago) by pgoyette
Branch: pgoyette-localcount
Changes since 1.4: +164 -36 lines
Diff to previous 1.4 (colored)

Sync with HEAD

Revision 1.16 / (download) - annotate - [select for diffs], Wed Oct 19 19:31:23 2016 UTC (7 years, 4 months ago) by jdolecek
Branch: MAIN
CVS Tags: pgoyette-localcount-20161104
Changes since 1.15: +28 -34 lines
Diff to previous 1.15 (colored)

follow advice of spec and block interrupts via INTMS/INTMC for intx handler;
this also makes it possible to offload the actual interrupt processing to softintr
handler, similar as for MSI/MSI-X

Revision 1.2.2.4 / (download) - annotate - [select for diffs], Wed Oct 5 20:55:43 2016 UTC (7 years, 5 months ago) by skrll
Branch: nick-nhusb
Changes since 1.2.2.3: +170 -35 lines
Diff to previous 1.2.2.3 (colored) to branchpoint 1.2 (colored)

Sync with HEAD

Revision 1.15 / (download) - annotate - [select for diffs], Tue Sep 27 03:33:32 2016 UTC (7 years, 5 months ago) by pgoyette
Branch: MAIN
CVS Tags: nick-nhusb-base-20161004
Changes since 1.14: +18 -29 lines
Diff to previous 1.14 (colored)

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).

Revision 1.14 / (download) - annotate - [select for diffs], Sun Sep 18 21:19:39 2016 UTC (7 years, 5 months ago) by jdolecek
Branch: MAIN
Changes since 1.13: +50 -12 lines
Diff to previous 1.13 (colored)

fix several bugs, make nvme(4) MPSAFE by default and also bump default
number of ioq from 128 to 1024; tested with VirtualBox and QEMU

* remove NVME_INTMC/NVME_INTMS writes in hw intr handler as this is not MPSAFE,
  fortunately they don't seem to be necessary; shaves two register writes
* need to use full mutex_enter() in nvme_q_complete(), to avoid small
  race between one handler exiting the loop and another entering
* for MSI, handover the command result processing to softintr; unfortunately
  can't easily do that for INTx interrupts as they require doorbell write
  to deassert
* unlock/relock q->q_cq_mtx before calling ccb_done to avoid potential deadlocks
* make sure to destroy queue mutexes when destroying the queue (LOCKDEBUG)
* make ns ctx pool per-device, so that it's deallocated properly on module
  unload
* handle ctx allocation failure in ld_nvme_dobio()
* remove splbio() calls in ld_nvme_dobio() and sync, the paths are exercised
  only for dump/shutdown, and that already disables interrupts
* free the ns ctx in ld_nvme_biodone() before calling lddone() to avoid
  memory starvation, as lddone() can trigger another i/o request
* be more careful with using PR_WAITOK, the paths are called from interrupt
  context and there we can't wait

Revision 1.13 / (download) - annotate - [select for diffs], Sun Sep 18 11:58:35 2016 UTC (7 years, 5 months ago) by jdolecek
Branch: MAIN
Changes since 1.12: +15 -5 lines
Diff to previous 1.12 (colored)

attach also the nvme_cdevsw when loaded as module, so /dev/nvme* works

Revision 1.12 / (download) - annotate - [select for diffs], Sat Sep 17 20:15:09 2016 UTC (7 years, 5 months ago) by jdolecek
Branch: MAIN
Changes since 1.11: +3 -12 lines
Diff to previous 1.11 (colored)

remove dev code included in previous commit by mistake

Revision 1.11 / (download) - annotate - [select for diffs], Sat Sep 17 20:12:53 2016 UTC (7 years, 5 months ago) by jdolecek
Branch: MAIN
Changes since 1.10: +66 -15 lines
Diff to previous 1.10 (colored)

#ifdef out MSI related code on platforms not supporting MSI, so that it's
possible to load the driver as module on those platforms (the weak symbols
are not found by module load, claiming they don't exist); this makes it possible
to load the driver on e.g. sparc64, which is supposed to be working
under OpenBSD

unfortunately QEMU sparc64 emulator starts causing data access errors
on first device register read in nvme_attach(), so can't confirm the driver
is actually working on sparc64; same happens in QEMU when booting OpenBSD
image, so it seems to be emulator bug

Revision 1.10 / (download) - annotate - [select for diffs], Sat Sep 17 12:58:51 2016 UTC (7 years, 5 months ago) by jdolecek
Branch: MAIN
Changes since 1.9: +5 -5 lines
Diff to previous 1.9 (colored)

actually detach the ld {b,c}devsw on unload, and fail load if it's already
present

Revision 1.9 / (download) - annotate - [select for diffs], Sat Sep 17 11:07:42 2016 UTC (7 years, 5 months ago) by jdolecek
Branch: MAIN
Changes since 1.8: +9 -3 lines
Diff to previous 1.8 (colored)

need to set PCI_COMMAND_MASTER_ENABLE flag; fixes the driver under QEMU

Revision 1.8 / (download) - annotate - [select for diffs], Sat Sep 17 03:02:03 2016 UTC (7 years, 5 months ago) by pgoyette
Branch: MAIN
Changes since 1.7: +3 -3 lines
Diff to previous 1.7 (colored)

Since the ld code included with the nvme module references stuff in
the dk_subr module, add a dependency.

Revision 1.7 / (download) - annotate - [select for diffs], Fri Sep 16 23:20:31 2016 UTC (7 years, 5 months ago) by pgoyette
Branch: MAIN
Changes since 1.6: +2 -4 lines
Diff to previous 1.6 (colored)

We need sys/module.h for built-in modules as well as for the .kmod so
#include it unconditionally.

Revision 1.6 / (download) - annotate - [select for diffs], Fri Sep 16 11:35:07 2016 UTC (7 years, 5 months ago) by jdolecek
Branch: MAIN
Changes since 1.5: +59 -2 lines
Diff to previous 1.5 (colored)

make it possible to load nvme(4) as module to ease testing; currently somewhat
non-optimal, since it includes the ld(4) code also and hence requires the
kernel config to have 'no ld'

Revision 1.5 / (download) - annotate - [select for diffs], Fri Sep 16 10:59:28 2016 UTC (7 years, 5 months ago) by jdolecek
Branch: MAIN
Changes since 1.4: +8 -14 lines
Diff to previous 1.4 (colored)

fix nvme_pci_detach() to not pci_intr_disestablish(); the interrupts
are disestablished and handler pointers are set to NULL already by
nvme_detach(), leading to panic here; this was happening when running
on system without MSI/MSI-X

change all the alloc/dealloc code for sc_ih to use psc->psc_nintrs, so
that we avoid some duplicated logic

Revision 1.4 / (download) - annotate - [select for diffs], Mon Jul 11 06:14:51 2016 UTC (7 years, 7 months ago) by knakahara
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20160806, pgoyette-localcount-20160726, localcount-20160914
Branch point for: pgoyette-localcount
Changes since 1.3: +5 -4 lines
Diff to previous 1.3 (colored)

pci_intr_type() is required pci_chipset_tag_t argument by other than x86.

pointed out by nonaka@n.o.

Revision 1.2.2.3 / (download) - annotate - [select for diffs], Sat Jul 9 20:25:04 2016 UTC (7 years, 7 months ago) by skrll
Branch: nick-nhusb
Changes since 1.2.2.2: +3 -3 lines
Diff to previous 1.2.2.2 (colored) to branchpoint 1.2 (colored)

Sync with HEAD

Revision 1.3 / (download) - annotate - [select for diffs], Fri Jun 24 15:25:43 2016 UTC (7 years, 8 months ago) by nonaka
Branch: MAIN
CVS Tags: nick-nhusb-base-20160907
Changes since 1.2: +3 -3 lines
Diff to previous 1.2 (colored)

fix free memory size.

Revision 1.2.2.2 / (download) - annotate - [select for diffs], Sun May 29 08:44:22 2016 UTC (7 years, 9 months ago) by skrll
Branch: nick-nhusb
Changes since 1.2.2.1: +422 -0 lines
Diff to previous 1.2.2.1 (colored) to branchpoint 1.2 (colored)

Sync with HEAD

Revision 1.2.2.1, Wed May 11 13:55:28 2016 UTC (7 years, 9 months ago) by skrll
Branch: nick-nhusb
Changes since 1.2: +0 -422 lines
FILE REMOVED

file nvme_pci.c was added on branch nick-nhusb on 2016-05-29 08:44:22 +0000

Revision 1.2 / (download) - annotate - [select for diffs], Wed May 11 13:55:28 2016 UTC (7 years, 9 months ago) by nonaka
Branch: MAIN
CVS Tags: nick-nhusb-base-20160529
Branch point for: nick-nhusb
Changes since 1.1: +5 -34 lines
Diff to previous 1.1 (colored)

Don't establish interrupt in nvme_pci_attach() when multi queue isn't used.

Revision 1.1 / (download) - annotate - [select for diffs], Sun May 1 10:21:02 2016 UTC (7 years, 10 months ago) by nonaka
Branch: MAIN

Added nvme(4) for Non-Volatile Memory Host Controller Interface devices.
Ported from OpenBSD.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>