From: Sagi Grimberg <sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org> To: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org> Subject: [PATCH v2 1/3] RDMA/core: make ib_device.add method optional Date: Sun, 2 Jul 2017 11:20:50 +0300 [thread overview] Message-ID: <1498983652-18250-2-git-send-email-sagi@grimberg.me> (raw) In-Reply-To: <1498983652-18250-1-git-send-email-sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org> ib_clients can indeed fill .add to NULL, but then they will not see any device removal notifications. The reason is that that ib_register_client and ib_register_device checked existence of .add before adding the creating a corresponding client_data and adding it to the list. Simple condition reverse fixes the issue. Reviewed-by: Johannes Thumshirn <jthumshirn-l3A5Bk7waGM@public.gmane.org> Reviewed-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org> Signed-off-by: Sagi Grimberg <sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org> --- drivers/infiniband/core/device.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c index 81d447da0048..26eb428af473 100644 --- a/drivers/infiniband/core/device.c +++ b/drivers/infiniband/core/device.c @@ -414,7 +414,7 @@ int ib_register_device(struct ib_device *device, device->reg_state = IB_DEV_REGISTERED; list_for_each_entry(client, &client_list, list) - if (client->add && !add_client_context(device, client)) + if (!add_client_context(device, client) && client->add) client->add(device); down_write(&lists_rwsem); @@ -499,7 +499,7 @@ int ib_register_client(struct ib_client *client) mutex_lock(&device_mutex); list_for_each_entry(device, &device_list, core_list) - if (client->add && !add_client_context(device, client)) + if (!add_client_context(device, client) && client->add) client->add(device); down_write(&lists_rwsem); -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: sagi@grimberg.me (Sagi Grimberg) Subject: [PATCH v2 1/3] RDMA/core: make ib_device.add method optional Date: Sun, 2 Jul 2017 11:20:50 +0300 [thread overview] Message-ID: <1498983652-18250-2-git-send-email-sagi@grimberg.me> (raw) In-Reply-To: <1498983652-18250-1-git-send-email-sagi@grimberg.me> ib_clients can indeed fill .add to NULL, but then they will not see any device removal notifications. The reason is that that ib_register_client and ib_register_device checked existence of .add before adding the creating a corresponding client_data and adding it to the list. Simple condition reverse fixes the issue. Reviewed-by: Johannes Thumshirn <jthumshirn at suse.de> Reviewed-by: Christoph Hellwig <hch at lst.de> Signed-off-by: Sagi Grimberg <sagi at grimberg.me> --- drivers/infiniband/core/device.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c index 81d447da0048..26eb428af473 100644 --- a/drivers/infiniband/core/device.c +++ b/drivers/infiniband/core/device.c @@ -414,7 +414,7 @@ int ib_register_device(struct ib_device *device, device->reg_state = IB_DEV_REGISTERED; list_for_each_entry(client, &client_list, list) - if (client->add && !add_client_context(device, client)) + if (!add_client_context(device, client) && client->add) client->add(device); down_write(&lists_rwsem); @@ -499,7 +499,7 @@ int ib_register_client(struct ib_client *client) mutex_lock(&device_mutex); list_for_each_entry(device, &device_list, core_list) - if (client->add && !add_client_context(device, client)) + if (!add_client_context(device, client) && client->add) client->add(device); down_write(&lists_rwsem); -- 2.7.4
next prev parent reply other threads:[~2017-07-02 8:20 UTC|newest] Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-07-02 8:20 [PATCH v2 0/3] Allow ib_clients to nullify .add but still get .remove events reliably Sagi Grimberg 2017-07-02 8:20 ` Sagi Grimberg [not found] ` <1498983652-18250-1-git-send-email-sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org> 2017-07-02 8:20 ` Sagi Grimberg [this message] 2017-07-02 8:20 ` [PATCH v2 1/3] RDMA/core: make ib_device.add method optional Sagi Grimberg [not found] ` <1498983652-18250-2-git-send-email-sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org> 2017-07-06 7:51 ` Sagi Grimberg 2017-07-06 7:51 ` Sagi Grimberg [not found] ` <14303999-2479-653c-719f-ac5a5b03fb33-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org> 2017-07-06 8:33 ` Leon Romanovsky 2017-07-06 8:33 ` Leon Romanovsky [not found] ` <20170706083301.GS1528-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org> 2017-07-06 8:38 ` Sagi Grimberg 2017-07-06 8:38 ` Sagi Grimberg 2017-07-02 8:20 ` [PATCH v2 2/3] nvme-rdma: remove redundant empty device add callout Sagi Grimberg 2017-07-02 8:20 ` Sagi Grimberg 2017-07-02 8:20 ` [PATCH v2 3/3] nvmet-rdma: " Sagi Grimberg 2017-07-02 8:20 ` Sagi Grimberg 2017-07-02 9:14 ` [PATCH v2 0/3] Allow ib_clients to nullify .add but still get .remove events reliably Max Gurtovoy 2017-07-02 9:14 ` Max Gurtovoy [not found] ` <8927ea7d-c6ba-4f32-4ede-0897e83bcda2-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> 2017-08-18 14:46 ` Doug Ledford 2017-08-18 14:46 ` Doug Ledford
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1498983652-18250-2-git-send-email-sagi@grimberg.me \ --to=sagi-nqwnxtmzq1alnmji0ikvqw@public.gmane.org \ --cc=dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \ --cc=hch-jcswGhMUV9g@public.gmane.org \ --cc=linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.