From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751240AbdAQMMy (ORCPT ); Tue, 17 Jan 2017 07:12:54 -0500 Received: from mail-sn1nam01on0045.outbound.protection.outlook.com ([104.47.32.45]:48256 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751178AbdAQMMu (ORCPT ); Tue, 17 Jan 2017 07:12:50 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Tomasz.Nowicki@caviumnetworks.com; Subject: Re: [PATCH v8 04/18] iommu: iommu_alloc_resv_region To: Eric Auger , , , , , , , , , , References: <1484127714-3263-1-git-send-email-eric.auger@redhat.com> <1484127714-3263-5-git-send-email-eric.auger@redhat.com> CC: , , , , , , , , , , From: Tomasz Nowicki Message-ID: <6b6f2af5-74b4-cf51-3c48-6ebc8c040885@caviumnetworks.com> Date: Tue, 17 Jan 2017 13:12:29 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <1484127714-3263-5-git-send-email-eric.auger@redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [31.172.191.173] X-ClientProxiedBy: VI1P18901CA0024.EURP189.PROD.OUTLOOK.COM (10.173.66.162) To SN1PR07MB2175.namprd07.prod.outlook.com (10.164.47.21) X-MS-Office365-Filtering-Correlation-Id: 1307fc41-08b6-4786-58ad-08d43ed2239f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:SN1PR07MB2175; X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2175;3:hUJLw9rEp52UneImw/8moKdV0FZtjgIQ5LhLLHPx4E8qqHe3YQz5tiklykLJWo/bvlr+521DKtV0OvmrrE5NoBtCaw2RXxsfbu2zOKbIXrzT0EjfNabLCLgEiDOWrEpF+0RP59WKeeRlqoWBtltCh3bZS5Q/LHTg1VNp8QwfQOGpio6vLvhfLIhcgMXSXtXs46XPQj0HCLGB1u6oED1L/iBuu9gp8Kz7yLN7QLtIif13mu1p+ndja3QjjeEcLb6RSCl1M03A0tGsTnjMM/2xog==;25:9z9zw8SyghXWnE491hbVRmWkvy6a7EmwjKo+rI5MrkmIgHBb8ESPNEiYUwp4yX/FGZRaRRV3/qB4TzQZJxhTfBdRI9GgeX28NUo7VE7BumZv3iepuqPBBtyXf24gSggSRLpLLLc+U5jgOoyfiXP/aZdDRRfoZ6roIunnsgC30CNW7J4/Rk/kM2krPcYk27wV/S8Lfq7lffjo4uy0wWBqKN1VFtvpvIjKJlvH3ck5a5uXnhawhaZGHWq0GhU10vqKVebsC3rpfAhexgCVHdzTi9LypNn+yP+H2kE1wD0vW1fizDV8yrdVW7Yn36X1xbtV3rn3w53mUxoLRRJdPtG7gNL0d5TIkSv10AgaCW249uFrd7D+1SHvuq+swjcSA1/xvTyFMtvBplF2nQU1A9iRWRttNpjXtReFbo+1CJot4FOfzfBJeSa90/FqATM/t2LHWmJgFCx9RlvsZc6539vlaQ== X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2175;31:Ul5DW27yjHCeRkhUmKGmERkdaBftylLyyLHi4n7NGYGEamqeVp/dfJtlYYgo7ZIBfpXAIZCCIv95s6Uq8DGBbC9gJ8c3KzK095Ve2WN6eBqw6quV3rxDKe6QqA3F/qNNtueSnrTHxUJfYcK66g/w8yzWxvPAl4wbbLKNE30cMaDruj1jidSWS8r9fR6RDVYVdKNFbWMwzm9MjnA/ouFxtco8oB4tKX0slA5FqmLKKsnNIaggTj56loR1SDM0qeiSYYMPZWvaD+g6F3xWTRSU3A==;20:rex4463xl3TE34VAR030UboT4XChVTzS8khRuhvxFIpwLqB0HQlWuVjZErFIFk8SO5zk/eCsuz8xW9n2dzChqZhrsoPfhP8KZl+mrSOa8w2PTqtmkxZ8YxbbIFl3qn3TwwB8zKl2HspoyT43ubqgvoRoh1Rv5vlYOQjHfA0Wp72ZihrV3lInN/PM0Q4x+wv5Fz4IpIjpjmZtXVaCk/sJbQKnVMCawYDh/zM4rKQUzXLUTWgnnKN2z5lbeLudbOFhX+oqm2uQarEekfSzqFZvK70DvdZkevumX+pKOO1ne+h7ewF9KQn1+e28fQKZUFUmhU22Iaje0/0GgsuzDmqdgX1q0ghPJJm4NMHSWsHYLC09BxVjjwc1YgazS1gNXgE/VXABlCrEOogOxwDVCeczKdxFfkQVgo2ktGIfV7yzpErFohNMvzSia8nGOSXYgNK+Rnx8kOicj0Zom0Ng51nvJeLXAiETm7VLdfBd/RRi4gd0MMTK7+QSJg0ckYNBmFYJm1tyMOBVQZYkEPytj79xr1CKmpvrvDX8N469XNE/bhadrnlPtVx+cboy3LEcvv0qRo863mE0pmD3bu+i0WGB2PkhuIQ+C6yZlz/v9UhNa9Y= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123562025)(20161123555025)(20161123564025)(20161123560025)(6072148);SRVR:SN1PR07MB2175;BCL:0;PCL:0;RULEID:;SRVR:SN1PR07MB2175; X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2175;4:+VwQcgSLJ+VI7+En3PJWoZMw9+Wkgncydf8NXC6+C0TDzFFBEP7bxkCuHWlJVOX+Wpsskbzdc3lGizrKP4U2CpYLi+v8RFH+9NUuWeP4Hvl7xN4/YXu6M2EAx8VhVXj5FF4MExgpH+SsrWih2f9f2FlZgfoLMDMgXZVEZogd80u9cDTmjSnmEd+k6G8R7ZO2L9/XLbyVjUvkufRWBSc3z3ZlR1xpBzK8iKBl0/PZOkx+YHuQ2xmB+osx+l6iWQX9giZipCItM6oyhxGI2rxkTYEk54TVx1pGHaEVI/HhSDZKdvDNOxoaErHbhOsccLbvFblZx2JH8q+BMvT2Vx8AKLlixipAZqRnI386Y5S2HnlXf6g8O1ns2FzbQj2c6KBHh2QJ9MT9vRs9lxqQuQniT9/8m7WrQh/b2FzV0Nh3pFO618uJIwxYZ6OVPd9MwEHE1BfdNkGLkS3CM36qulXfJ6f39f/4g5qyMOCmon47Ob9Ew6c+2nJqAdysDfHRFEknps/bzdLbO0xiiC/xV2JLb7JYlAlytRL7ONnaaCl67chlj1OoGG76x3IY3KyOsIUFMhFZjU83mAYoRRyz714UFw== X-Forefront-PRVS: 01901B3451 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(7916002)(39450400003)(189002)(199003)(24454002)(31686004)(81166006)(31696002)(81156014)(2201001)(50466002)(42186005)(68736007)(305945005)(101416001)(7736002)(106356001)(3846002)(189998001)(5890100001)(33646002)(105586002)(50986999)(4326007)(6116002)(92566002)(76176999)(54356999)(64126003)(8676002)(5001770100001)(83506001)(2906002)(4001350100001)(39060400001)(7416002)(54906002)(38730400001)(97736004)(229853002)(23746002)(5660300001)(66066001)(65956001)(90366009)(47776003)(8656002)(77096006)(36756003)(25786008)(6666003)(2950100002)(6486002)(230700001)(30001)(921003)(2101003)(83996005)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR07MB2175;H:[10.0.0.85];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;SN1PR07MB2175;23:pWrQh1SU8IDUr4nvfzRN7Yk7Er2T/ya3K7e46?= =?Windows-1252?Q?fGwnIpa30FA5VUFM4qW4r/yMsxAQIrL+/42U/ZG0jFRYvCGCoDHOORvN?= =?Windows-1252?Q?qmuTpQP0ErE+/OQSwnCr/4MbeEjhxwMa2QW6g6Xe2upZZieesE0RzphT?= =?Windows-1252?Q?4xyUAZ5RVS5ZJZhB/a4Gu+R/yHlvrKxmRHeNg+cp6jyrPAC7Hpo/Tyou?= =?Windows-1252?Q?rO2gTgprYcq26weqLIoNZgYshEouN46QHbm59DoyG5d28VcRZ48IPcR7?= =?Windows-1252?Q?jm+AS45SAUAzKcSf4MCUgBlfpaQjxU9/zP3kxEiNMD1X7FzYA3mgjcWN?= =?Windows-1252?Q?m/Ly+crcXkh/hKuHzVGnIMO2Yjl3J3trObMvauTur+L2qGIVIsyZUZ5h?= =?Windows-1252?Q?OJCzouMVOtZnjAo3D9jnRX4yLoq52BiMTDCB2FLoG3Q03t1kH7pJ1avS?= =?Windows-1252?Q?SoeJPHYYVXTKaK7F9y25y2BDavFUeW6x4jhGbHeoul3l3GE+Mf+gmARC?= =?Windows-1252?Q?sf779WXz9levHblQVi0lFuhJHTrc/67exvnDJC4a8BxZXeKSfzwZQ7Eu?= =?Windows-1252?Q?fR/aADo9fK1yF1JSgnrGV0zwkzvhsPzx3ybciiqPMkRM1YY+J+nFf5Hp?= =?Windows-1252?Q?2qf/3lsYVYZkmo+EGsJioVUBlS3jnYAOtaw7FzjImPV0W3Hm2my7WAMv?= =?Windows-1252?Q?9i+YrJOu59niuseplqr3TX5/o70n/bbQafPY/Ks3QpHWxN81wx7fq5x2?= =?Windows-1252?Q?2nQcJmxdNTZoza4egf/NKe/CqixEm7fAC8qAAeluGKpgRSPZsgF0SU4b?= =?Windows-1252?Q?y7bRSflXKUb1HRRFF6g412mgCFoHqp/akh7iRGXhaaKvORKV/TYS3Mmh?= =?Windows-1252?Q?JhGZ4Fksw8H/qVua+OKxVqcLB9YXjda6rJHX9F34LiCb8Ne3Esjzcpvd?= =?Windows-1252?Q?CauJe5sxg55b1kpiLdXzbApUf2AG/B112eybYSPcUmVsw5m9exdFe8tp?= =?Windows-1252?Q?i7VDotkGSccXyjDBPYsrvHXFxZzSpZOzKx2/xptpHv1NapfsHLrYfYO8?= =?Windows-1252?Q?B4Bj5YcRBlEeXt6tV6I5GyRr3r0ksa0FSi/zILQ3nZNRX1ASCyq+hAyi?= =?Windows-1252?Q?Ia16/Bst28WjiPljU/7Kd2UI/zbqM46tP8SQ4+zRgKR1/Nzg7I6B/5kI?= =?Windows-1252?Q?gCys9QJsqJ5UCGTZg0Xq2X2gf/SwuRjfW8jYpb7U/u5J3Y9243RmQgPE?= =?Windows-1252?Q?gz5KbEZ7tYRmCWW0mSiANer7Kcz+Gy96ow2P3nOeo7Hvyt7FlSBZPMOa?= =?Windows-1252?Q?TRgf393t0WFDk7m9opI6saS3AyCPAd6Xs9IOLa7WQBjUM7H4Ktnybtgu?= =?Windows-1252?Q?0kDeUXZHRTZ8r2KWLsI4MJLXU/Dunpyi0iImQeM03wyv12rWX4OO1nr6?= =?Windows-1252?Q?s+640ATxhAe7lR4GLzF8C8X3kStWW5bFXP1mpVLpOhDoA3GlazxAdPdl?= =?Windows-1252?Q?mQWCxgVHL1+hw1TGWScfg0eIat7uYzy+mpgap93zKdoKLhIZ61G6rsIq?= =?Windows-1252?Q?RlUrviOGu1PeI+QGvUxEiljzwH5Kb7zNZ3K?= X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2175;6:5v6Q8ignV+Mz0CzYPBS/XoixTy5yQuajGSRUa6rBxEZUDTmntRugVGj9sIaejObqYxIZ4j6cKyG7Ae56orClstYcSZYqq6YfThyxR5mV9IGYbzwslBLhlkwR0x2jhvDjOQPn6hp/DJtImNmnC78RQDNJxbZf0O7R77ZqhQw0mq8o8Km/GVbUWNCFP7wUp0lnhS0PJZpCJEodf0YZCrCcPZ3nezSncoDUR4OwAQsNFV2DZNLTx+9GqLjOHF6A0v3QQs7rlx+Do5Sgw+RkNupbbJZ4KYZKfyKoJkmLNKfamyteOgJEe5YsZC03LwHEUDU1C3yT0lLRctbQFIhVVmkGBouTfL2BiqOhA8JQTB/ff2T/z7KFHiPzAymxSfRrzgtyBKQKwy/Ku4ayTJVsa/BlBvvqq525xVsGqpG8NkXXIdg=;5:hPB8L2aerKJl6lVnbpMDJTQ0o6Lcfd1qGX7SaCjFL+Kqz6KFY5QXrGr5ujbEgaxXVgt80rxrwW3bSprOJIwbS1NEo9gBC3mb9KfpUIAbDDYUDuhlPswyeNcN2jqFdGqDRMNdk7wlS8HH0ltrk5IcjVldZwIgUbH/97raLZam35A=;24:xCF7X9TaZtucC29ApHb5L8w51YJ1PsdKwUOPZ4I+j7MvPoSekz/0fQ0yQB0zdfPlIXVrEFDc87qnwaLPPKSlHX4N7tFSI4fww9id9deyI7o= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN1PR07MB2175;7:CJykD9y7LMVihpuCJ8APV6g2B8qC0JpEnu6O9Bi6M9c6fAJUg3Bb2Ad4LOVSsxfmgzMZb8D1ONikXGz4SjBPH9bRmh0Pbh5aa2T7iKIkOMNqdAQdq39V3rpT5jPdNFRAHbIiG5/utTINAeWJgsrB3uzSMeRh0sxCTAS9CpD2CVRInDMH8gg7Fh0qfl8Qw6etGgBY6AQT34xs6r6uzAp79R1+EDodzMkBf2gShz9DtcSH7qZyem4q0nOSynRipAMZdOw2ATSi8JI1B4ZdPZNmM36G+oFtNL9dp7tDHOc6kOmCWVMEfJ5vZNdil/wD3t0AsecBluPe5QQixR8hH6bceCO0bX8S/pdYWimA7QuORrBiUkaCvgTR6x+sKqdI0peLs4zZ0DgBuLI7Zfzh7ZRL+c86AFO+G7/nlRb9TfF69PvjdwDRaBVH+W944Nb1V0433hNECx45+/AX8+2N52lwVg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2017 12:12:39.4015 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR07MB2175 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11.01.2017 10:41, Eric Auger wrote: > Introduce a new helper serving the purpose to allocate a reserved > region. This will be used in iommu driver implementing reserved > region callbacks. > > Signed-off-by: Eric Auger Reviewed-by: Tomasz Nowicki Thanks, Tomasz > > --- > > v3 -> v4: > - add INIT_LIST_HEAD(®ion->list) > - use int for prot param and add int type param > - remove implementation outside of CONFIG_IOMMU_API > --- > drivers/iommu/iommu.c | 18 ++++++++++++++++++ > include/linux/iommu.h | 2 ++ > 2 files changed, 20 insertions(+) > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > index 1cee5c3..927878d 100644 > --- a/drivers/iommu/iommu.c > +++ b/drivers/iommu/iommu.c > @@ -1575,6 +1575,24 @@ void iommu_put_resv_regions(struct device *dev, struct list_head *list) > ops->put_resv_regions(dev, list); > } > > +struct iommu_resv_region *iommu_alloc_resv_region(phys_addr_t start, > + size_t length, > + int prot, int type) > +{ > + struct iommu_resv_region *region; > + > + region = kzalloc(sizeof(*region), GFP_KERNEL); > + if (!region) > + return NULL; > + > + INIT_LIST_HEAD(®ion->list); > + region->start = start; > + region->length = length; > + region->prot = prot; > + region->type = type; > + return region; > +} > + > /* Request that a device is direct mapped by the IOMMU */ > int iommu_request_dm_for_dev(struct device *dev) > { > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > index 233a6bf..f6bb55d3 100644 > --- a/include/linux/iommu.h > +++ b/include/linux/iommu.h > @@ -244,6 +244,8 @@ extern void iommu_set_fault_handler(struct iommu_domain *domain, > extern void iommu_get_resv_regions(struct device *dev, struct list_head *list); > extern void iommu_put_resv_regions(struct device *dev, struct list_head *list); > extern int iommu_request_dm_for_dev(struct device *dev); > +extern struct iommu_resv_region * > +iommu_alloc_resv_region(phys_addr_t start, size_t length, int prot, int type); > > extern int iommu_attach_group(struct iommu_domain *domain, > struct iommu_group *group); > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomasz Nowicki Subject: Re: [PATCH v8 04/18] iommu: iommu_alloc_resv_region Date: Tue, 17 Jan 2017 13:12:29 +0100 Message-ID: <6b6f2af5-74b4-cf51-3c48-6ebc8c040885@caviumnetworks.com> References: <1484127714-3263-1-git-send-email-eric.auger@redhat.com> <1484127714-3263-5-git-send-email-eric.auger@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Cc: drjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, punit.agrawal-5wv7dgnIgG8@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, geethasowjanya.akula-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, pranav.sawargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, shankerd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, gpkulkarni-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org To: Eric Auger , , , , , , , , , , Return-path: In-Reply-To: <1484127714-3263-5-git-send-email-eric.auger-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org List-Id: kvm.vger.kernel.org On 11.01.2017 10:41, Eric Auger wrote: > Introduce a new helper serving the purpose to allocate a reserved > region. This will be used in iommu driver implementing reserved > region callbacks. > > Signed-off-by: Eric Auger Reviewed-by: Tomasz Nowicki Thanks, Tomasz > > --- > > v3 -> v4: > - add INIT_LIST_HEAD(®ion->list) > - use int for prot param and add int type param > - remove implementation outside of CONFIG_IOMMU_API > --- > drivers/iommu/iommu.c | 18 ++++++++++++++++++ > include/linux/iommu.h | 2 ++ > 2 files changed, 20 insertions(+) > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > index 1cee5c3..927878d 100644 > --- a/drivers/iommu/iommu.c > +++ b/drivers/iommu/iommu.c > @@ -1575,6 +1575,24 @@ void iommu_put_resv_regions(struct device *dev, struct list_head *list) > ops->put_resv_regions(dev, list); > } > > +struct iommu_resv_region *iommu_alloc_resv_region(phys_addr_t start, > + size_t length, > + int prot, int type) > +{ > + struct iommu_resv_region *region; > + > + region = kzalloc(sizeof(*region), GFP_KERNEL); > + if (!region) > + return NULL; > + > + INIT_LIST_HEAD(®ion->list); > + region->start = start; > + region->length = length; > + region->prot = prot; > + region->type = type; > + return region; > +} > + > /* Request that a device is direct mapped by the IOMMU */ > int iommu_request_dm_for_dev(struct device *dev) > { > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > index 233a6bf..f6bb55d3 100644 > --- a/include/linux/iommu.h > +++ b/include/linux/iommu.h > @@ -244,6 +244,8 @@ extern void iommu_set_fault_handler(struct iommu_domain *domain, > extern void iommu_get_resv_regions(struct device *dev, struct list_head *list); > extern void iommu_put_resv_regions(struct device *dev, struct list_head *list); > extern int iommu_request_dm_for_dev(struct device *dev); > +extern struct iommu_resv_region * > +iommu_alloc_resv_region(phys_addr_t start, size_t length, int prot, int type); > > extern int iommu_attach_group(struct iommu_domain *domain, > struct iommu_group *group); > From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomasz Nowicki Subject: Re: [PATCH v8 04/18] iommu: iommu_alloc_resv_region Date: Tue, 17 Jan 2017 13:12:29 +0100 Message-ID: <6b6f2af5-74b4-cf51-3c48-6ebc8c040885@caviumnetworks.com> References: <1484127714-3263-1-git-send-email-eric.auger@redhat.com> <1484127714-3263-5-git-send-email-eric.auger@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1484127714-3263-5-git-send-email-eric.auger-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Eric Auger , eric.auger.pro-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, christoffer.dall-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org, marc.zyngier-5wv7dgnIgG8@public.gmane.org, robin.murphy-5wv7dgnIgG8@public.gmane.org, alex.williamson-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, will.deacon-5wv7dgnIgG8@public.gmane.org, joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org, tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org, jason-NLaQJdtUoK4Be96aLqz0jA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Cc: drjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, kvm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, punit.agrawal-5wv7dgnIgG8@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, geethasowjanya.akula-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, pranav.sawargaonkar-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, shankerd-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, gpkulkarni-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: iommu@lists.linux-foundation.org On 11.01.2017 10:41, Eric Auger wrote: > Introduce a new helper serving the purpose to allocate a reserved > region. This will be used in iommu driver implementing reserved > region callbacks. > > Signed-off-by: Eric Auger Reviewed-by: Tomasz Nowicki Thanks, Tomasz > > --- > > v3 -> v4: > - add INIT_LIST_HEAD(®ion->list) > - use int for prot param and add int type param > - remove implementation outside of CONFIG_IOMMU_API > --- > drivers/iommu/iommu.c | 18 ++++++++++++++++++ > include/linux/iommu.h | 2 ++ > 2 files changed, 20 insertions(+) > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > index 1cee5c3..927878d 100644 > --- a/drivers/iommu/iommu.c > +++ b/drivers/iommu/iommu.c > @@ -1575,6 +1575,24 @@ void iommu_put_resv_regions(struct device *dev, struct list_head *list) > ops->put_resv_regions(dev, list); > } > > +struct iommu_resv_region *iommu_alloc_resv_region(phys_addr_t start, > + size_t length, > + int prot, int type) > +{ > + struct iommu_resv_region *region; > + > + region = kzalloc(sizeof(*region), GFP_KERNEL); > + if (!region) > + return NULL; > + > + INIT_LIST_HEAD(®ion->list); > + region->start = start; > + region->length = length; > + region->prot = prot; > + region->type = type; > + return region; > +} > + > /* Request that a device is direct mapped by the IOMMU */ > int iommu_request_dm_for_dev(struct device *dev) > { > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > index 233a6bf..f6bb55d3 100644 > --- a/include/linux/iommu.h > +++ b/include/linux/iommu.h > @@ -244,6 +244,8 @@ extern void iommu_set_fault_handler(struct iommu_domain *domain, > extern void iommu_get_resv_regions(struct device *dev, struct list_head *list); > extern void iommu_put_resv_regions(struct device *dev, struct list_head *list); > extern int iommu_request_dm_for_dev(struct device *dev); > +extern struct iommu_resv_region * > +iommu_alloc_resv_region(phys_addr_t start, size_t length, int prot, int type); > > extern int iommu_attach_group(struct iommu_domain *domain, > struct iommu_group *group); > From mboxrd@z Thu Jan 1 00:00:00 1970 From: tnowicki@caviumnetworks.com (Tomasz Nowicki) Date: Tue, 17 Jan 2017 13:12:29 +0100 Subject: [PATCH v8 04/18] iommu: iommu_alloc_resv_region In-Reply-To: <1484127714-3263-5-git-send-email-eric.auger@redhat.com> References: <1484127714-3263-1-git-send-email-eric.auger@redhat.com> <1484127714-3263-5-git-send-email-eric.auger@redhat.com> Message-ID: <6b6f2af5-74b4-cf51-3c48-6ebc8c040885@caviumnetworks.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 11.01.2017 10:41, Eric Auger wrote: > Introduce a new helper serving the purpose to allocate a reserved > region. This will be used in iommu driver implementing reserved > region callbacks. > > Signed-off-by: Eric Auger Reviewed-by: Tomasz Nowicki Thanks, Tomasz > > --- > > v3 -> v4: > - add INIT_LIST_HEAD(®ion->list) > - use int for prot param and add int type param > - remove implementation outside of CONFIG_IOMMU_API > --- > drivers/iommu/iommu.c | 18 ++++++++++++++++++ > include/linux/iommu.h | 2 ++ > 2 files changed, 20 insertions(+) > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > index 1cee5c3..927878d 100644 > --- a/drivers/iommu/iommu.c > +++ b/drivers/iommu/iommu.c > @@ -1575,6 +1575,24 @@ void iommu_put_resv_regions(struct device *dev, struct list_head *list) > ops->put_resv_regions(dev, list); > } > > +struct iommu_resv_region *iommu_alloc_resv_region(phys_addr_t start, > + size_t length, > + int prot, int type) > +{ > + struct iommu_resv_region *region; > + > + region = kzalloc(sizeof(*region), GFP_KERNEL); > + if (!region) > + return NULL; > + > + INIT_LIST_HEAD(®ion->list); > + region->start = start; > + region->length = length; > + region->prot = prot; > + region->type = type; > + return region; > +} > + > /* Request that a device is direct mapped by the IOMMU */ > int iommu_request_dm_for_dev(struct device *dev) > { > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > index 233a6bf..f6bb55d3 100644 > --- a/include/linux/iommu.h > +++ b/include/linux/iommu.h > @@ -244,6 +244,8 @@ extern void iommu_set_fault_handler(struct iommu_domain *domain, > extern void iommu_get_resv_regions(struct device *dev, struct list_head *list); > extern void iommu_put_resv_regions(struct device *dev, struct list_head *list); > extern int iommu_request_dm_for_dev(struct device *dev); > +extern struct iommu_resv_region * > +iommu_alloc_resv_region(phys_addr_t start, size_t length, int prot, int type); > > extern int iommu_attach_group(struct iommu_domain *domain, > struct iommu_group *group); >