* [hverkuil-media:cec-prepare-s-conn 5/5] drivers/media/cec/cec-notifier.c:219 cec_notifier_drm_conn_register() error: double locked 'n->lock' (orig line 195)
@ 2020-03-11 14:38 ` Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2020-03-11 14:38 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 7289 bytes --]
tree: git://linuxtv.org/hverkuil/media_tree.git cec-prepare-s-conn
head: 6f7efe5f8bb0a93eab41692e3ea1ced81002a604
commit: 6f7efe5f8bb0a93eab41692e3ea1ced81002a604 [5/5] cec-notifier: introduce cec_notifier_drm_conn_register()
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/media/cec/cec-notifier.c:219 cec_notifier_drm_conn_register() error: double locked 'n->lock' (orig line 195)
git remote add hverkuil-media git://linuxtv.org/hverkuil/media_tree.git
git remote update hverkuil-media
git checkout 6f7efe5f8bb0a93eab41692e3ea1ced81002a604
vim +219 drivers/media/cec/cec-notifier.c
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 167 struct cec_notifier *
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 168 cec_notifier_drm_conn_register(struct device *card_dev,
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 169 const struct cec_connector_info *conn_info,
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 170 const char *name, struct device *hdmi_dev,
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 171 const char *port_name)
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 172 {
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 173 struct cec_notifier *n = NULL;
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 174
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 175 if (port_name) {
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 176 n = cec_notifier_find_port_name(card_dev, port_name);
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 177 } else if (hdmi_dev) {
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 178 n = cec_notifier_find_hdmi_dev(hdmi_dev);
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 179 } else if (conn_info) {
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 180 n = __cec_notifier_find_conn_info(conn_info);
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 181 /* You shouldn't register the same connector twice */
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 182 WARN_ON(n);
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 183 }
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 184
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 185 if (n) {
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 186 char *pname = NULL;
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 187
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 188 if (port_name) {
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 189 pname = kstrdup(port_name, GFP_KERNEL);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 190 if (!pname) {
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 191 cec_notifier_put(n);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 192 return NULL;
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 193 }
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 194 }
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 @195 mutex_lock(&n->lock);
^^^^^^^^^^^^^^^^^^^^
This has no unlock.
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 196 WARN_ON(n->card_dev || n->hdmi_dev || n->port_name || n->name[0] ||
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 197 n->conn_info.type);
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 198 n->card_dev = card_dev;
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 199 n->hdmi_dev = hdmi_dev;
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 200 kfree(n->port_name);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 201 n->port_name = pname;
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 202 if (conn_info)
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 203 n->conn_info = *conn_info;
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 204 else
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 205 memset(&n->conn_info, 0, sizeof(n->conn_info));
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 206 strscpy(n->name, name ? : "", sizeof(n->name));
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 207 n->phys_addr = CEC_PHYS_ADDR_INVALID;
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 208 mutex_unlock(&cec_notifiers_lock);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 209 } else {
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 210 n = cec_notifier_alloc(card_dev, name, conn_info,
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 211 hdmi_dev, port_name);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 212 if (!n)
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 213 return NULL;
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 214 mutex_lock(&cec_notifiers_lock);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 215 list_add_tail(&n->head, &cec_notifiers);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 216 mutex_unlock(&cec_notifiers_lock);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 217 }
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 218
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 @219 mutex_lock(&n->lock);
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 220 if (n->cec_adap) {
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 221 cec_phys_addr_invalidate(n->cec_adap);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 222 cec_s_conn_info(n->cec_adap, &n->conn_info);
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 223 }
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 224 mutex_unlock(&n->lock);
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 225 return n;
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 226 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 2+ messages in thread
* [hverkuil-media:cec-prepare-s-conn 5/5] drivers/media/cec/cec-notifier.c:219 cec_notifier_drm_conn_register() error: double locked 'n->lock' (orig line 195)
@ 2020-03-11 14:38 ` Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2020-03-11 14:38 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 7289 bytes --]
tree: git://linuxtv.org/hverkuil/media_tree.git cec-prepare-s-conn
head: 6f7efe5f8bb0a93eab41692e3ea1ced81002a604
commit: 6f7efe5f8bb0a93eab41692e3ea1ced81002a604 [5/5] cec-notifier: introduce cec_notifier_drm_conn_register()
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/media/cec/cec-notifier.c:219 cec_notifier_drm_conn_register() error: double locked 'n->lock' (orig line 195)
git remote add hverkuil-media git://linuxtv.org/hverkuil/media_tree.git
git remote update hverkuil-media
git checkout 6f7efe5f8bb0a93eab41692e3ea1ced81002a604
vim +219 drivers/media/cec/cec-notifier.c
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 167 struct cec_notifier *
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 168 cec_notifier_drm_conn_register(struct device *card_dev,
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 169 const struct cec_connector_info *conn_info,
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 170 const char *name, struct device *hdmi_dev,
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 171 const char *port_name)
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 172 {
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 173 struct cec_notifier *n = NULL;
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 174
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 175 if (port_name) {
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 176 n = cec_notifier_find_port_name(card_dev, port_name);
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 177 } else if (hdmi_dev) {
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 178 n = cec_notifier_find_hdmi_dev(hdmi_dev);
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 179 } else if (conn_info) {
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 180 n = __cec_notifier_find_conn_info(conn_info);
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 181 /* You shouldn't register the same connector twice */
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 182 WARN_ON(n);
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 183 }
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 184
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 185 if (n) {
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 186 char *pname = NULL;
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 187
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 188 if (port_name) {
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 189 pname = kstrdup(port_name, GFP_KERNEL);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 190 if (!pname) {
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 191 cec_notifier_put(n);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 192 return NULL;
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 193 }
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 194 }
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 @195 mutex_lock(&n->lock);
^^^^^^^^^^^^^^^^^^^^
This has no unlock.
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 196 WARN_ON(n->card_dev || n->hdmi_dev || n->port_name || n->name[0] ||
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 197 n->conn_info.type);
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 198 n->card_dev = card_dev;
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 199 n->hdmi_dev = hdmi_dev;
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 200 kfree(n->port_name);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 201 n->port_name = pname;
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 202 if (conn_info)
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 203 n->conn_info = *conn_info;
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 204 else
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 205 memset(&n->conn_info, 0, sizeof(n->conn_info));
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 206 strscpy(n->name, name ? : "", sizeof(n->name));
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 207 n->phys_addr = CEC_PHYS_ADDR_INVALID;
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 208 mutex_unlock(&cec_notifiers_lock);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 209 } else {
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 210 n = cec_notifier_alloc(card_dev, name, conn_info,
6f7efe5f8bb0a9 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 211 hdmi_dev, port_name);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 212 if (!n)
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 213 return NULL;
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 214 mutex_lock(&cec_notifiers_lock);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 215 list_add_tail(&n->head, &cec_notifiers);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 216 mutex_unlock(&cec_notifiers_lock);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 217 }
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 218
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 @219 mutex_lock(&n->lock);
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 220 if (n->cec_adap) {
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 221 cec_phys_addr_invalidate(n->cec_adap);
f5dfc08548cf46 drivers/media/cec/cec-notifier.c Hans Verkuil 2020-03-05 222 cec_s_conn_info(n->cec_adap, &n->conn_info);
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 223 }
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 224 mutex_unlock(&n->lock);
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 225 return n;
b48cb35c6a7bab drivers/media/cec/cec-notifier.c Hans Verkuil 2019-06-20 226 }
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-03-11 14:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-11 14:38 [hverkuil-media:cec-prepare-s-conn 5/5] drivers/media/cec/cec-notifier.c:219 cec_notifier_drm_conn_register() error: double locked 'n->lock' (orig line 195) Dan Carpenter
2020-03-11 14:38 ` Dan Carpenter
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.