From: Gaoyan <gao.yanB@h3c.com>
To: "paulus@samba.org" <paulus@samba.org>,
"davem@davemloft.net" <davem@davemloft.net>,
"kuba@kernel.org" <kuba@kernel.org>
Cc: "linux-ppp@vger.kernel.org" <linux-ppp@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: 答复: [PATCH] net: remove disc_data_lock in =?utf-8?Q?_ppp_line_discipl
Date: Thu, 31 Dec 2020 10:00:12 +0000 [thread overview]
Message-ID: <cfc4caad55554bf68bfae8a23c32950c@h3c.com> (raw)
In-Reply-To: <20201228071550.15745-1-gao.yanB@h3c.com>
RGVhciBhbGzvvJoNCg0KQ291bGQgSSBnZXQgeW91ciBjb21tZW50cyBmb3IgdGhlIHVwZGF0ZXM/
ICBJZiBJIGNhbiBnZXQgYSByZXBseSwgaXQgd2lsbCBoZWxwIG1lIGEgbG90IC4gVGhhbmtzDQoN
Cmh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDIwLzEyLzI4LzE5DQoNCg0KDQoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqDQoNCg0KLS0tLU9yaWdpbmFsIG1haWwgLS0tLS0NCuWPkeS7tuS6
ujogZ2FveWFuIChSRCkgDQrlj5HpgIHml7bpl7Q6IDIwMjDlubQxMuaciDI45pelIDE1OjE2DQrm
lLbku7bkuro6IHBhdWx1c0BzYW1iYS5vcmc7IGRhdmVtQGRhdmVtbG9mdC5uZXQ7IGt1YmFAa2Vy
bmVsLm9yZw0K5oqE6YCBOiBsaW51eC1wcHBAdmdlci5rZXJuZWwub3JnOyBuZXRkZXZAdmdlci5r
ZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBnYW95YW4gKFJEKSA8Z2Fv
LnlhbkJAaDNjLmNvbT4NCuS4u+mimDogW1BBVENIXSBuZXQ6IHJlbW92ZSBkaXNjX2RhdGFfbG9j
ayBpbiBwcHAgbGluZSBkaXNjaXBsaW5lDQoNCkluIHR0eSBsYXllciwgaXQgdXNlIHR0eS0+bGRp
c2Nfc2VtIHRvIHByb2VjdCB0dHlfbGRpc2Nfb3BzLg0KU28gSSB0aGluayB0dHktPmxkaXNjX3Nl
bSBjYW4gYWxzbyBwcm90ZWN0IHR0eS0+ZGlzY19kYXRhOyBGb3IgZXhhbWxwZSwgV2hlbiBjcHUg
QSBpcyBydW5uaW5nIHBwcF9zeW5jdHR5X2lvY3RsIHRoYXQgaG9sZCB0aGUgdHR5LT5sZGlzY19z
ZW0sIGF0IHRoZSBzYW1lIHRpbWUgIGlmIGNwdSBCIGNhbGxzIHBwcF9zeW5jdHR5X2Nsb3NlLCBp
dCB3aWxsIHdhaXQgdW50aWwgY3B1IEEgcmVsZWFzZSB0dHktPmxkaXNjX3NlbS4gU28gSSB0aGlu
ayBpdCBpcyB1bm5lY2Vzc2FyeSB0byBoYXZlIHRoZSBkaXNjX2RhdGFfbG9jazsNCg0KY3B1IEEg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcHUgQg0KdHR5X2lvY3RsICAgICAgICAgICAgICAg
ICAgICAgICB0dHlfcmVvcGVuDQogLT5ob2xkIHR0eS0+bGRpc2Nfc2VtICAgICAgICAgICAgLT5o
b2xkIHR0eS0+bGRpc2Nfc2VtKHdyaXRlKSwgZmFpbGVkDQogLT5sZC0+b3BzLT5pb2N0bCAgICAg
ICAgICAgICAgICAgLT53YWl0Li4uDQogLT5yZWxlYXNlIHR0eS0+bGRpc2Nfc2VtICAgICAgICAg
LT53YWl0Li4uT0ssaG9sZCB0dHktPmxkaXNjX3NlbQ0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLT50dHlfbGRpc2NfcmVpbml0DQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC0+dHR5X2xkaXNjX2Nsb3NlDQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLT5sZC0+b3BzLT5jbG9zZQ0KDQpTaWduZWQtb2ZmLWJ5OiBHYW8gWWFu
IDxnYW8ueWFuQkBoM2MuY29tPg0KLS0tDQogZHJpdmVycy9uZXQvcHBwL3BwcF9hc3luYy5jICAg
fCAxMSArKy0tLS0tLS0tLQ0KIGRyaXZlcnMvbmV0L3BwcC9wcHBfc3luY3R0eS5jIHwgMTIgKyst
LS0tLS0tLS0tDQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9u
cygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwcF9hc3luYy5jIGIvZHJpdmVy
cy9uZXQvcHBwL3BwcF9hc3luYy5jIGluZGV4IDI5YTA5MTdhOC4uMjBiNTBmYWNkIDEwMDY0NA0K
LS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwcF9hc3luYy5jDQorKysgYi9kcml2ZXJzL25ldC9wcHAv
cHBwX2FzeW5jLmMNCkBAIC0xMjcsMTcgKzEyNywxMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBw
cF9jaGFubmVsX29wcyBhc3luY19vcHMgPSB7DQogICogRklYTUU6IHRoaXMgaXMgbm8gbG9uZ2Vy
IHRydWUuIFRoZSBfY2xvc2UgcGF0aCBmb3IgdGhlIGxkaXNjIGlzDQogICogbm93IGd1YXJhbnRl
ZWQgdG8gYmUgc2FuZS4NCiAgKi8NCi1zdGF0aWMgREVGSU5FX1JXTE9DSyhkaXNjX2RhdGFfbG9j
ayk7DQogDQogc3RhdGljIHN0cnVjdCBhc3luY3BwcCAqYXBfZ2V0KHN0cnVjdCB0dHlfc3RydWN0
ICp0dHkpICB7DQotCXN0cnVjdCBhc3luY3BwcCAqYXA7DQorCXN0cnVjdCBhc3luY3BwcCAqYXAg
PSB0dHktPmRpc2NfZGF0YTsNCiANCi0JcmVhZF9sb2NrKCZkaXNjX2RhdGFfbG9jayk7DQotCWFw
ID0gdHR5LT5kaXNjX2RhdGE7DQogCWlmIChhcCAhPSBOVUxMKQ0KIAkJcmVmY291bnRfaW5jKCZh
cC0+cmVmY250KTsNCi0JcmVhZF91bmxvY2soJmRpc2NfZGF0YV9sb2NrKTsNCiAJcmV0dXJuIGFw
Ow0KIH0NCiANCkBAIC0yMTQsMTIgKzIxMCw5IEBAIHBwcF9hc3luY3R0eV9vcGVuKHN0cnVjdCB0
dHlfc3RydWN0ICp0dHkpICBzdGF0aWMgdm9pZCAgcHBwX2FzeW5jdHR5X2Nsb3NlKHN0cnVjdCB0
dHlfc3RydWN0ICp0dHkpICB7DQotCXN0cnVjdCBhc3luY3BwcCAqYXA7DQorCXN0cnVjdCBhc3lu
Y3BwcCAqYXAgPSB0dHktPmRpc2NfZGF0YTsNCiANCi0Jd3JpdGVfbG9ja19pcnEoJmRpc2NfZGF0
YV9sb2NrKTsNCi0JYXAgPSB0dHktPmRpc2NfZGF0YTsNCiAJdHR5LT5kaXNjX2RhdGEgPSBOVUxM
Ow0KLQl3cml0ZV91bmxvY2tfaXJxKCZkaXNjX2RhdGFfbG9jayk7DQogCWlmICghYXApDQogCQly
ZXR1cm47DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcHBwL3BwcF9zeW5jdHR5LmMgYi9k
cml2ZXJzL25ldC9wcHAvcHBwX3N5bmN0dHkuYyBpbmRleCAwZjMzODc1MmMuLjUzZmI2OGUyOSAx
MDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBfc3luY3R0eS5jDQorKysgYi9kcml2ZXJz
L25ldC9wcHAvcHBwX3N5bmN0dHkuYw0KQEAgLTEyOSwxNyArMTI5LDEyIEBAIHBwcF9wcmludF9i
dWZmZXIgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IF9fdTggKmJ1ZiwgaW50IGNvdW50KQ0KICAq
DQogICogRklYTUU6IEZpeGVkIGluIHR0eV9pbyBub3dhZGF5cy4NCiAgKi8NCi1zdGF0aWMgREVG
SU5FX1JXTE9DSyhkaXNjX2RhdGFfbG9jayk7DQotDQogc3RhdGljIHN0cnVjdCBzeW5jcHBwICpz
cF9nZXQoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkgIHsNCi0Jc3RydWN0IHN5bmNwcHAgKmFwOw0K
KwlzdHJ1Y3Qgc3luY3BwcCAqYXAgPSB0dHktPmRpc2NfZGF0YTsNCiANCi0JcmVhZF9sb2NrKCZk
aXNjX2RhdGFfbG9jayk7DQotCWFwID0gdHR5LT5kaXNjX2RhdGE7DQogCWlmIChhcCAhPSBOVUxM
KQ0KIAkJcmVmY291bnRfaW5jKCZhcC0+cmVmY250KTsNCi0JcmVhZF91bmxvY2soJmRpc2NfZGF0
YV9sb2NrKTsNCiAJcmV0dXJuIGFwOw0KIH0NCiANCkBAIC0yMTMsMTIgKzIwOCw5IEBAIHBwcF9z
eW5jX29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkgIHN0YXRpYyB2b2lkICBwcHBfc3luY19j
bG9zZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KSAgew0KLQlzdHJ1Y3Qgc3luY3BwcCAqYXA7DQor
CXN0cnVjdCBzeW5jcHBwICphcCA9IHR0eS0+ZGlzY19kYXRhOw0KIA0KLQl3cml0ZV9sb2NrX2ly
cSgmZGlzY19kYXRhX2xvY2spOw0KLQlhcCA9IHR0eS0+ZGlzY19kYXRhOw0KIAl0dHktPmRpc2Nf
ZGF0YSA9IE5VTEw7DQotCXdyaXRlX3VubG9ja19pcnEoJmRpc2NfZGF0YV9sb2NrKTsNCiAJaWYg
KCFhcCkNCiAJCXJldHVybjsNCiANCi0tDQoyLjE3LjENCg0K
WARNING: multiple messages have this Message-ID (diff)
From: Gaoyan <gao.yanB@h3c.com>
To: "paulus@samba.org" <paulus@samba.org>,
"davem@davemloft.net" <davem@davemloft.net>,
"kuba@kernel.org" <kuba@kernel.org>
Cc: "linux-ppp@vger.kernel.org" <linux-ppp@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: 答复: [PATCH] net: remove disc_data_lock in ppp line discipline
Date: Thu, 31 Dec 2020 10:00:12 +0000 [thread overview]
Message-ID: <cfc4caad55554bf68bfae8a23c32950c@h3c.com> (raw)
In-Reply-To: <20201228071550.15745-1-gao.yanB@h3c.com>
Dear all:
Could I get your comments for the updates? If I can get a reply, it will help me a lot . Thanks
https://lkml.org/lkml/2020/12/28/19
*******************************
----Original mail -----
发件人: gaoyan (RD)
发送时间: 2020年12月28日 15:16
收件人: paulus@samba.org; davem@davemloft.net; kuba@kernel.org
抄送: linux-ppp@vger.kernel.org; netdev@vger.kernel.org; linux-kernel@vger.kernel.org; gaoyan (RD) <gao.yanB@h3c.com>
主题: [PATCH] net: remove disc_data_lock in ppp line discipline
In tty layer, it use tty->ldisc_sem to proect tty_ldisc_ops.
So I think tty->ldisc_sem can also protect tty->disc_data; For examlpe, When cpu A is running ppp_synctty_ioctl that hold the tty->ldisc_sem, at the same time if cpu B calls ppp_synctty_close, it will wait until cpu A release tty->ldisc_sem. So I think it is unnecessary to have the disc_data_lock;
cpu A cpu B
tty_ioctl tty_reopen
->hold tty->ldisc_sem ->hold tty->ldisc_sem(write), failed
->ld->ops->ioctl ->wait...
->release tty->ldisc_sem ->wait...OK,hold tty->ldisc_sem
->tty_ldisc_reinit
->tty_ldisc_close
->ld->ops->close
Signed-off-by: Gao Yan <gao.yanB@h3c.com>
---
drivers/net/ppp/ppp_async.c | 11 ++---------
drivers/net/ppp/ppp_synctty.c | 12 ++----------
2 files changed, 4 insertions(+), 19 deletions(-)
diff --git a/drivers/net/ppp/ppp_async.c b/drivers/net/ppp/ppp_async.c index 29a0917a8..20b50facd 100644
--- a/drivers/net/ppp/ppp_async.c
+++ b/drivers/net/ppp/ppp_async.c
@@ -127,17 +127,13 @@ static const struct ppp_channel_ops async_ops = {
* FIXME: this is no longer true. The _close path for the ldisc is
* now guaranteed to be sane.
*/
-static DEFINE_RWLOCK(disc_data_lock);
static struct asyncppp *ap_get(struct tty_struct *tty) {
- struct asyncppp *ap;
+ struct asyncppp *ap = tty->disc_data;
- read_lock(&disc_data_lock);
- ap = tty->disc_data;
if (ap != NULL)
refcount_inc(&ap->refcnt);
- read_unlock(&disc_data_lock);
return ap;
}
@@ -214,12 +210,9 @@ ppp_asynctty_open(struct tty_struct *tty) static void ppp_asynctty_close(struct tty_struct *tty) {
- struct asyncppp *ap;
+ struct asyncppp *ap = tty->disc_data;
- write_lock_irq(&disc_data_lock);
- ap = tty->disc_data;
tty->disc_data = NULL;
- write_unlock_irq(&disc_data_lock);
if (!ap)
return;
diff --git a/drivers/net/ppp/ppp_synctty.c b/drivers/net/ppp/ppp_synctty.c index 0f338752c..53fb68e29 100644
--- a/drivers/net/ppp/ppp_synctty.c
+++ b/drivers/net/ppp/ppp_synctty.c
@@ -129,17 +129,12 @@ ppp_print_buffer (const char *name, const __u8 *buf, int count)
*
* FIXME: Fixed in tty_io nowadays.
*/
-static DEFINE_RWLOCK(disc_data_lock);
-
static struct syncppp *sp_get(struct tty_struct *tty) {
- struct syncppp *ap;
+ struct syncppp *ap = tty->disc_data;
- read_lock(&disc_data_lock);
- ap = tty->disc_data;
if (ap != NULL)
refcount_inc(&ap->refcnt);
- read_unlock(&disc_data_lock);
return ap;
}
@@ -213,12 +208,9 @@ ppp_sync_open(struct tty_struct *tty) static void ppp_sync_close(struct tty_struct *tty) {
- struct syncppp *ap;
+ struct syncppp *ap = tty->disc_data;
- write_lock_irq(&disc_data_lock);
- ap = tty->disc_data;
tty->disc_data = NULL;
- write_unlock_irq(&disc_data_lock);
if (!ap)
return;
--
2.17.1
next prev parent reply other threads:[~2020-12-31 10:00 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-28 7:15 [PATCH] net: remove disc_data_lock in ppp line discipline Gao Yan
2020-12-28 7:15 ` Gao Yan
2020-12-31 10:00 ` Gaoyan [this message]
2020-12-31 10:00 ` 答复: " Gaoyan
2021-01-01 1:37 ` Xie He
2021-01-01 1:37 ` Xie He
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=cfc4caad55554bf68bfae8a23c32950c@h3c.com \
--to=gao.yanb@h3c.com \
--cc=davem@davemloft.net \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-ppp@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=paulus@samba.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: link
Be 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.