diff --git a/pydantic/dataclasses.py b/pydantic/dataclasses.py
--- a/pydantic/dataclasses.py
+++ b/pydantic/dataclasses.py
@@ -385,6 +385,10 @@ def create_pydantic_model_from_dataclass(
 
 
 def _dataclass_validate_values(self: 'Dataclass') -> None:
+    # validation errors can occur if this function is called twice on an already initialised dataclass.
+    # for example if Extra.forbid is enabled, it would consider __pydantic_initialised__ an invalid extra property
+    if getattr(self, '__pydantic_initialised__'):
+        return
     if getattr(self, '__pydantic_has_field_info_default__', False):
         # We need to remove `FieldInfo` values since they are not valid as input
         # It's ok to do that because they are obviously the default values!

Very good catch, thank you @DetachHead.
diff --git a/tests/test_dataclasses.py b/tests/test_dataclasses.py
--- a/tests/test_dataclasses.py
+++ b/tests/test_dataclasses.py
@@ -1360,3 +1360,27 @@ class A:
         A(1, '')
 
     assert A(b='hi').b == 'hi'
+
+
+def test_extra_forbid_list_no_error():
+    @pydantic.dataclasses.dataclass(config=dict(extra=Extra.forbid))
+    class Bar:
+        ...
+
+    @pydantic.dataclasses.dataclass
+    class Foo:
+        a: List[Bar]
+
+    assert isinstance(Foo(a=[Bar()]).a[0], Bar)
+
+
+def test_extra_forbid_list_error():
+    @pydantic.dataclasses.dataclass(config=dict(extra=Extra.forbid))
+    class Bar:
+        ...
+
+    with pytest.raises(TypeError, match=re.escape("__init__() got an unexpected keyword argument 'a'")):
+
+        @pydantic.dataclasses.dataclass
+        class Foo:
+            a: List[Bar(a=1)]

"extra fields not permitted" error when using `Extra.forbid` on `dataclass` property that's a `dict` or `list` of another `dataclass`
### Initial Checks

- [X] I have searched GitHub for a duplicate issue and I'm sure this is something new
- [X] I have searched Google & StackOverflow for a solution and couldn't find anything
- [X] I have read and followed [the docs](https://pydantic-docs.helpmanual.io) and still think this is a bug
- [X] I am confident that the issue is with pydantic  (not my code, or another library in the ecosystem like [FastAPI](https://fastapi.tiangolo.com) or [mypy](https://mypy.readthedocs.io/en/stable))


### Description

when instanciating a `dataclass` where a property is a `list` or `dict` of another `dataclass`, it causes this error:

> extra fields not permitted (type=value_error.extra)

### Example Code

```Python
from pydantic import Extra
from pydantic.dataclasses import dataclass


class ExtraPropertiesForbidden:
    extra = Extra.forbid


@dataclass(config=ExtraPropertiesForbidden)
class Bar:
    ...


@dataclass(config=ExtraPropertiesForbidden)
class Foo:
    a: list[Bar]


a = Foo(a=[Bar()])  # error: extra fields not permitted (type=value_error.extra)
```


### Python, Pydantic & OS Version
this issue seems to have been introduced after the 1.9.1 release. this occurred after installing the latest commit from master:

```
pip uninstall pydantic
pip install git+https://github.com/samuelcolvin/pydantic.git@a69136d2096e327ed48954a298c775dceb1551d1
```
```Text
pydantic version: 1.9.0
            pydantic compiled: False
                 install path: C:\Users\chungus\AppData\Local\pypoetry\Cache\virtualenvs\project-e01-Hfn1-py3.10\Lib\site-packages\pydantic
               python version: 3.10.6 (tags/v3.10.6:9c7b4bd, Aug  1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
                     platform: Windows-10-10.0.19042-SP0
     optional deps. installed: ['typing-extensions']
```


### Affected Components

- [ ] [Compatibility between releases](https://pydantic-docs.helpmanual.io/changelog/)
- [ ] [Data validation/parsing](https://pydantic-docs.helpmanual.io/usage/models/#basic-model-usage)
- [ ] [Data serialization](https://pydantic-docs.helpmanual.io/usage/exporting_models/) - `.dict()` and `.json()`
- [ ] [JSON Schema](https://pydantic-docs.helpmanual.io/usage/schema/)
- [X] [Dataclasses](https://pydantic-docs.helpmanual.io/usage/dataclasses/)
- [X] [Model Config](https://pydantic-docs.helpmanual.io/usage/model_config/)
- [ ] [Field Types](https://pydantic-docs.helpmanual.io/usage/types/) - adding or changing a particular data type
- [ ] [Function validation decorator](https://pydantic-docs.helpmanual.io/usage/validation_decorator/)
- [ ] [Generic Models](https://pydantic-docs.helpmanual.io/usage/models/#generic-models)
- [ ] [Other Model behaviour](https://pydantic-docs.helpmanual.io/usage/models/) - `construct()`, pickling, private attributes, ORM mode
- [ ] [Settings Management](https://pydantic-docs.helpmanual.io/usage/settings/)
- [ ] [Plugins](https://pydantic-docs.helpmanual.io/) and integration with other tools - mypy, FastAPI, python-devtools, Hypothesis, VS Code, PyCharm, etc.

tests/test_dataclasses.py::test_extra_forbid_list_no_error
tests/test_dataclasses.py::test_simple tests/test_dataclasses.py::test_model_name tests/test_dataclasses.py::test_value_error tests/test_dataclasses.py::test_frozen tests/test_dataclasses.py::test_validate_assignment tests/test_dataclasses.py::test_validate_assignment_error tests/test_dataclasses.py::test_not_validate_assignment tests/test_dataclasses.py::test_validate_assignment_value_change tests/test_dataclasses.py::test_validate_assignment_extra tests/test_dataclasses.py::test_post_init tests/test_dataclasses.py::test_post_init_validation tests/test_dataclasses.py::test_post_init_inheritance_chain tests/test_dataclasses.py::test_post_init_post_parse tests/test_dataclasses.py::test_post_init_post_parse_types tests/test_dataclasses.py::test_post_init_assignment tests/test_dataclasses.py::test_inheritance tests/test_dataclasses.py::test_validate_long_string_error tests/test_dataclasses.py::test_validate_assigment_long_string_error tests/test_dataclasses.py::test_no_validate_assigment_long_string_error tests/test_dataclasses.py::test_nested_dataclass tests/test_dataclasses.py::test_arbitrary_types_allowed tests/test_dataclasses.py::test_nested_dataclass_model tests/test_dataclasses.py::test_fields tests/test_dataclasses.py::test_default_factory_field tests/test_dataclasses.py::test_default_factory_singleton_field tests/test_dataclasses.py::test_schema tests/test_dataclasses.py::test_nested_schema tests/test_dataclasses.py::test_initvar tests/test_dataclasses.py::test_derived_field_from_initvar tests/test_dataclasses.py::test_initvars_post_init tests/test_dataclasses.py::test_initvars_post_init_post_parse tests/test_dataclasses.py::test_classvar tests/test_dataclasses.py::test_frozenset_field tests/test_dataclasses.py::test_inheritance_post_init tests/test_dataclasses.py::test_hashable_required tests/test_dataclasses.py::test_hashable_optional[1] tests/test_dataclasses.py::test_hashable_optional[None] tests/test_dataclasses.py::test_hashable_optional[default2] tests/test_dataclasses.py::test_override_builtin_dataclass tests/test_dataclasses.py::test_override_builtin_dataclass_2 tests/test_dataclasses.py::test_override_builtin_dataclass_nested tests/test_dataclasses.py::test_override_builtin_dataclass_nested_schema tests/test_dataclasses.py::test_inherit_builtin_dataclass tests/test_dataclasses.py::test_dataclass_arbitrary tests/test_dataclasses.py::test_forward_stdlib_dataclass_params tests/test_dataclasses.py::test_pydantic_callable_field tests/test_dataclasses.py::test_pickle_overriden_builtin_dataclass tests/test_dataclasses.py::test_config_field_info_create_model tests/test_dataclasses.py::test_issue_2162[foo0-bar0] tests/test_dataclasses.py::test_issue_2162[foo1-bar1] tests/test_dataclasses.py::test_issue_2162[foo2-bar2] tests/test_dataclasses.py::test_issue_2162[foo3-bar3] tests/test_dataclasses.py::test_issue_2383 tests/test_dataclasses.py::test_issue_2398 tests/test_dataclasses.py::test_issue_2424 tests/test_dataclasses.py::test_issue_2541 tests/test_dataclasses.py::test_issue_2555 tests/test_dataclasses.py::test_issue_2594 tests/test_dataclasses.py::test_schema_description_unset tests/test_dataclasses.py::test_schema_description_set tests/test_dataclasses.py::test_issue_3011 tests/test_dataclasses.py::test_issue_3162 tests/test_dataclasses.py::test_discrimated_union_basemodel_instance_value tests/test_dataclasses.py::test_post_init_after_validation tests/test_dataclasses.py::test_keeps_custom_properties tests/test_dataclasses.py::test_ignore_extra tests/test_dataclasses.py::test_ignore_extra_subclass tests/test_dataclasses.py::test_allow_extra tests/test_dataclasses.py::test_allow_extra_subclass tests/test_dataclasses.py::test_forbid_extra tests/test_dataclasses.py::test_post_init_allow_extra tests/test_dataclasses.py::test_self_reference_dataclass tests/test_dataclasses.py::test_extra_forbid_list_error