Skip to content

Commit

Permalink
Merge tag 'for-linus-6.14-rc1-tag' of git://git.kernel.org/pub/scm/li…
Browse files Browse the repository at this point in the history
…nux/kernel/git/xen/tip

Pull xen updates from Juergen Gross:
 "Three minor fixes"

* tag 'for-linus-6.14-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xen: update pvcalls_front_accept prototype
  Grab mm lock before grabbing pt lock
  xen: pcpu: remove unnecessary __ref annotation
  • Loading branch information
Linus Torvalds committed Jan 29, 2025
2 parents 9071080 + bda50f7 commit b2091a6
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 4 deletions.
4 changes: 4 additions & 0 deletions arch/x86/xen/mmu_pv.c
Original file line number Diff line number Diff line change
Expand Up @@ -781,6 +781,7 @@ void xen_mm_pin_all(void)
{
struct page *page;

spin_lock(&init_mm.page_table_lock);
spin_lock(&pgd_lock);

list_for_each_entry(page, &pgd_list, lru) {
Expand All @@ -791,6 +792,7 @@ void xen_mm_pin_all(void)
}

spin_unlock(&pgd_lock);
spin_unlock(&init_mm.page_table_lock);
}

static void __init xen_mark_pinned(struct mm_struct *mm, struct page *page,
Expand Down Expand Up @@ -887,6 +889,7 @@ void xen_mm_unpin_all(void)
{
struct page *page;

spin_lock(&init_mm.page_table_lock);
spin_lock(&pgd_lock);

list_for_each_entry(page, &pgd_list, lru) {
Expand All @@ -898,6 +901,7 @@ void xen_mm_unpin_all(void)
}

spin_unlock(&pgd_lock);
spin_unlock(&init_mm.page_table_lock);
}

static void xen_enter_mmap(struct mm_struct *mm)
Expand Down
2 changes: 1 addition & 1 deletion drivers/xen/pcpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ static ssize_t online_show(struct device *dev,
return sprintf(buf, "%u\n", !!(cpu->flags & XEN_PCPU_FLAGS_ONLINE));
}

static ssize_t __ref online_store(struct device *dev,
static ssize_t online_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t count)
{
Expand Down
14 changes: 12 additions & 2 deletions drivers/xen/pvcalls-front.c
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,7 @@ int pvcalls_front_socket(struct socket *sock)
pvcalls_exit();
return ret;
}
EXPORT_SYMBOL_GPL(pvcalls_front_socket);

static void free_active_ring(struct sock_mapping *map)
{
Expand Down Expand Up @@ -486,6 +487,7 @@ int pvcalls_front_connect(struct socket *sock, struct sockaddr *addr,
pvcalls_exit_sock(sock);
return ret;
}
EXPORT_SYMBOL_GPL(pvcalls_front_connect);

static int __write_ring(struct pvcalls_data_intf *intf,
struct pvcalls_data *data,
Expand Down Expand Up @@ -581,6 +583,7 @@ int pvcalls_front_sendmsg(struct socket *sock, struct msghdr *msg,
pvcalls_exit_sock(sock);
return tot_sent;
}
EXPORT_SYMBOL_GPL(pvcalls_front_sendmsg);

static int __read_ring(struct pvcalls_data_intf *intf,
struct pvcalls_data *data,
Expand Down Expand Up @@ -666,6 +669,7 @@ int pvcalls_front_recvmsg(struct socket *sock, struct msghdr *msg, size_t len,
pvcalls_exit_sock(sock);
return ret;
}
EXPORT_SYMBOL_GPL(pvcalls_front_recvmsg);

int pvcalls_front_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
{
Expand Down Expand Up @@ -719,6 +723,7 @@ int pvcalls_front_bind(struct socket *sock, struct sockaddr *addr, int addr_len)
pvcalls_exit_sock(sock);
return 0;
}
EXPORT_SYMBOL_GPL(pvcalls_front_bind);

int pvcalls_front_listen(struct socket *sock, int backlog)
{
Expand Down Expand Up @@ -768,8 +773,10 @@ int pvcalls_front_listen(struct socket *sock, int backlog)
pvcalls_exit_sock(sock);
return ret;
}
EXPORT_SYMBOL_GPL(pvcalls_front_listen);

int pvcalls_front_accept(struct socket *sock, struct socket *newsock, int flags)
int pvcalls_front_accept(struct socket *sock, struct socket *newsock,
struct proto_accept_arg *arg)
{
struct pvcalls_bedata *bedata;
struct sock_mapping *map;
Expand All @@ -788,7 +795,7 @@ int pvcalls_front_accept(struct socket *sock, struct socket *newsock, int flags)
return -EINVAL;
}

nonblock = flags & SOCK_NONBLOCK;
nonblock = arg->flags & SOCK_NONBLOCK;
/*
* Backend only supports 1 inflight accept request, will return
* errors for the others
Expand Down Expand Up @@ -904,6 +911,7 @@ int pvcalls_front_accept(struct socket *sock, struct socket *newsock, int flags)
pvcalls_exit_sock(sock);
return ret;
}
EXPORT_SYMBOL_GPL(pvcalls_front_accept);

static __poll_t pvcalls_front_poll_passive(struct file *file,
struct pvcalls_bedata *bedata,
Expand Down Expand Up @@ -1004,6 +1012,7 @@ __poll_t pvcalls_front_poll(struct file *file, struct socket *sock,
pvcalls_exit_sock(sock);
return ret;
}
EXPORT_SYMBOL_GPL(pvcalls_front_poll);

int pvcalls_front_release(struct socket *sock)
{
Expand Down Expand Up @@ -1087,6 +1096,7 @@ int pvcalls_front_release(struct socket *sock)
pvcalls_exit();
return 0;
}
EXPORT_SYMBOL_GPL(pvcalls_front_release);

static const struct xenbus_device_id pvcalls_front_ids[] = {
{ "pvcalls" },
Expand Down
2 changes: 1 addition & 1 deletion drivers/xen/pvcalls-front.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ int pvcalls_front_bind(struct socket *sock,
int pvcalls_front_listen(struct socket *sock, int backlog);
int pvcalls_front_accept(struct socket *sock,
struct socket *newsock,
int flags);
struct proto_accept_arg *arg);
int pvcalls_front_sendmsg(struct socket *sock,
struct msghdr *msg,
size_t len);
Expand Down

0 comments on commit b2091a6

Please sign in to comment.