From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54EE0C4332F for ; Wed, 14 Dec 2022 11:07:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E80808E0006; Wed, 14 Dec 2022 06:07:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E31968E0002; Wed, 14 Dec 2022 06:07:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CD3208E0006; Wed, 14 Dec 2022 06:07:41 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id BCB158E0002 for ; Wed, 14 Dec 2022 06:07:41 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 7F2F2160E1E for ; Wed, 14 Dec 2022 11:07:41 +0000 (UTC) X-FDA: 80240636322.30.A51443F Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf14.hostedemail.com (Postfix) with ESMTP id 45DC2100006 for ; Wed, 14 Dec 2022 11:07:39 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=TwKaFh7R; spf=pass (imf14.hostedemail.com: domain of hdegoede@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=hdegoede@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1671016059; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=2NMzT5WxxanwVRj3ltZhzzgNHC+/kTxBdOPUCNNU8Ak=; b=JmaKyG6aK/e9P9CxebBCerC/dz5kCEEHmiGdutOt+pSjfAQlSiJP+f5iJar8ckYNTjNEY2 sWBwjht/aFPJZw9DtFC9iKEhtMLjkib4ZrcF6JvI50wHO2MTyFBFl3ZWEZapzVmFqQ2gTW v9RD3g6iAaHEeD2ykWNF4WELTAqVFSA= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=TwKaFh7R; spf=pass (imf14.hostedemail.com: domain of hdegoede@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=hdegoede@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1671016059; a=rsa-sha256; cv=none; b=E1jBN2oV+nGLuanT2iIrKD8CUsYNDnevpnkmVm9xtt/Jsx99aIGB1kR/MhVn5HdhyVOwIc eMTppOpYnwmsUtT4pLndW+Y5LV6pz85WF51v6x+nuWWc/UwCiGfojNKCW8YanmX7pwKunY 9wNVe/i6eiB+mUhWBJ5ZCTbqvc0E/k4= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1671016058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2NMzT5WxxanwVRj3ltZhzzgNHC+/kTxBdOPUCNNU8Ak=; b=TwKaFh7RCX8AcHA9aFQ8uk6/2ZQfOMJGUMbIIsVscOdCs1jV66mR7XHLSFgRzq4TXVcY3N WM9jtk99FyF5xk/2A9ixHX8nSfo62vyot8fg24AGaYJcl7+GN/oEjgpsWPTkoYHiMZRXGv Yng4B8DEkZvjU1i9sSOU1RfMa1sjCPk= Received: from mail-ej1-f69.google.com (mail-ej1-f69.google.com [209.85.218.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-549-G6y2LBHzM6qJlmJM1dyDkQ-1; Wed, 14 Dec 2022 06:07:37 -0500 X-MC-Unique: G6y2LBHzM6qJlmJM1dyDkQ-1 Received: by mail-ej1-f69.google.com with SMTP id sb19-20020a1709076d9300b007c17017bb51so5852845ejc.21 for ; Wed, 14 Dec 2022 03:07:37 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=2NMzT5WxxanwVRj3ltZhzzgNHC+/kTxBdOPUCNNU8Ak=; b=8C5RHMMRFAk+emJicfWlW89yW5gTid5NK7Rd3Fcwz5vFsFlRbrAnhYsEX1H/RuRa8T p4HXr+ZGGNjU1pB5LeS2eouR1ZqrQi1Soz0ZkQRdUaQ94Q2TimFXsRzNIERwWct94nx1 qLMX9unhYYFDhDYrcaccg+Ag12kDs7SfD5EXTD8Ll7lipx2xYNJ3sle63mz1IYUG/yHr Oi99zfUrA2YEdTuzyHTBbTUm5T/9U12CgdWXewh/O1h2K9aEoqgMEp+lqoZKR7WmYXZb edvER6hVDk/8jH0gD3ypjYiv1v2o1lLrYRM0W3RQyQCraK8in9U4lAE3fn2UhQgkjkx6 eykg== X-Gm-Message-State: ANoB5plziaT6vWlApBR4whDXBmIf4vcfDLuvRcKGFfrOz9N9TYkTHi9P hbdUiS3OVNxJPqBVzRQAjZ7Q+4QuyQA3WA2JXXPy4vhSSuqtdvT9D68hC78Taqr9QjNInonrLJ4 VJH7n0xrG4V0= X-Received: by 2002:a05:6402:2408:b0:461:f0a7:156 with SMTP id t8-20020a056402240800b00461f0a70156mr21772630eda.36.1671016055976; Wed, 14 Dec 2022 03:07:35 -0800 (PST) X-Google-Smtp-Source: AA0mqf5Bzrmu8+Hyf8yFzKSh6TtL86SENQgPWgmQXPgzi7Krk9g7uVytmQSovpkSDJk4Qms/oW9dQQ== X-Received: by 2002:a05:6402:2408:b0:461:f0a7:156 with SMTP id t8-20020a056402240800b00461f0a70156mr21772623eda.36.1671016055802; Wed, 14 Dec 2022 03:07:35 -0800 (PST) Received: from ?IPV6:2001:1c00:c1e:bf00:d69d:5353:dba5:ee81? (2001-1c00-0c1e-bf00-d69d-5353-dba5-ee81.cable.dynamic.v6.ziggo.nl. [2001:1c00:c1e:bf00:d69d:5353:dba5:ee81]) by smtp.gmail.com with ESMTPSA id w14-20020a056402070e00b00463a83ce063sm5991090edx.96.2022.12.14.03.07.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 14 Dec 2022 03:07:35 -0800 (PST) Message-ID: Date: Wed, 14 Dec 2022 12:07:34 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: Dubious usage of VM_SHARED in atomisp_fops.c To: David Hildenbrand Cc: "linux-mm@kvack.org" , Mauro Carvalho Chehab , "linux-media@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Sakari Ailus , Andy Shevchenko References: From: Hans de Goede In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US, nl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 45DC2100006 X-Stat-Signature: xrzfku7nuikw6rhyn86pcroc7q98bp3c X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1671016059-959587 X-HE-Meta: U2FsdGVkX1/hnQXJPiBps+8PAFKqAIbit2GI60B+laFSleOZh20QXyoc7G/tcDN6SZGlgAQkAFnrh+yG2YP2rw8OJMtsyLX0cBB43pwL6czvb5NnT5uFUb1F0sPdTu5xx4gvULzFLoOoYwCSXivNRMwwVR+xg1Fr07xTt4J2IiKhkGuoaxA/u1xfg96W8Rf1u2lOctJM7YVTCaUKdmVV7HIm0/cixtluxS1zwz/quTxJX1nBFctScEl/jUOvdBxSDm1vSZ/4pLmhucgMZCO+3ylyoiLpj2rAj+oqcVxzPiOJ40ZbaPFxR6focKM9kIwCbsnTn1vlR1aBFnK/x68f2aJNABtKgGsBEV+53afj/iZUjT5OeQ6VaOWpILDWEr+igNsrOtk+KMF993vMlRNTH3Z7LmXxMPq8Tiw4tFqu9AL+OBUdHdoDsjROoIbX206vkA730ZFYfjqtdwYKoqlz7npaVqVxZ0tD26Ghiz2BAdq/lMFeWGu76d+t98N3bGY1fgHJYdn5L/21JNDS6y+XyojOFKoviNOItrShlQGbGqfRsGulWkBeq0W5oUDks9L1RXqBwiqV838jglrgJ3OJE1WR+qBMn1EJGNqH1ecAWMmcslIy+mqr5F3LXmqow/OaY1WAfuinOUe8t43oGrSdHkoT/E30ubIpY1okrXjFvqNwNIBThP4eMB2BWkEgdrHi4JXs1VgIAXbgKx9iFsacWG4SalzzVBrGE2cM11O4y1xC/uby+ACtlAlZoXCgBnVPL3GUdGKP89aebIirV1CBa3OZLR/rFg7K1vrO6ICJ6iUgJqXXaGitArf6oHOJfnmdYesBa38oaIMtFuhRCBU3H2DDKdkFjIdm0GonCRdUxMaDiYGptA1GFGhyC/8u6QDerkeoBX6IFs5Lz158pcq/LekjMFoFOkJHOG3UZkWGnwe2EhxYlyfGVrjlHdOqGZ3deyE1X+q0vqjB7I+DlnZ Qi2T9DCA IsqB4ZXFSxJ+H2Iq4h3xXtDvfuPJiiw17o4cfUgx6vORxi+kfk/cYqIqForQWnDKDELtYWSFZVLaANyuvNr+NV7FHRNJm3qq72TlmpOV1GgFMMP2dJP2j9trockK41zARH/OAtpzoxdQhLMxuAzYb0mSiXldSdinxASleiBpx4lnBx893nBjl2+EIAEnHiF5Ousqv X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi David, On 12/14/22 11:22, David Hildenbrand wrote: > Hi, > > going over all VM_SHARED and VM_MAYSHARE user in the kernel, I stumbled over the following dubious code in drivers/staging/media/atomisp/pci/atomisp_fops.c: > > > if (!(vma->vm_flags & (VM_WRITE | VM_READ))) >     return -EACCES; > > ... > > if (!(vma->vm_flags & VM_SHARED)) { >     /* Map private buffer. >      * Set VM_SHARED to the flags since we need >      * to map the buffer page by page. >      * Without VM_SHARED, remap_pfn_range() treats >      * this kind of mapping as invalid. >      */ >     vma->vm_flags |= VM_SHARED; >     ret = hmm_mmap(vma, vma->vm_pgoff << PAGE_SHIFT); >     ... > } > > > We're converting a writable MAP_PRIVATE mapping ("COW mapping") into a writable MAP_SHARED mapping, to hack around the is_cow_mapping() check in remap_pfn_range_notrack(). > > We're not even setting VM_MAYSHARE and turn the mapping silently into something with completely different semantics. > > > That code has to go. > > > One approach would be to reject such mappings (no idea if user space relies on private mappings), the other one would be to remove this driver. Judging that the driver already was marked broken in 2020 (ad85094b293e ("Revert "media: staging: atomisp: Remove driver"")), maybe it's time for the driver to go. There is still quite a lot of hw out there (and being used with Linux) which has camera sensors connected to the atomisp2. Recently a community member finally managed to actually make the driver work and I have been working on cleaning it up since. For 6.2 I set of patches converting the driver to the videobuf2 framework will land and as part of that all the problematic code you point to above has been removed. If you grep for VM_SHARED under drivers/staging/media/atomisp in linux-next you will find no hits :) Regards, Hans